0%

mac下无mysql配置文件my.cnf

天行健,君子以自强不息。 —— 《易·乾》

一、问题背景

执行SELECT TRACE INTO outfile '/path/yourfile' FROM INFORMATION_SCHEMA.OPTIMIZER_TRACE;语句时报错:ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv option so it cannot execute this statement,由此可判断出选项设置的原因。查看选项配置show variables like 'secure_file_priv';得知:secure_file_prive设为null表示限制mysqld不允许导入导出,设为/path/表示限制mysqld的导入导出只能发生在默认的/path/目录下,设为’’(空字符串)表示不对mysqld 的导入导出做限制。尝试通过命令行修改此选项set global secure_file_priv='';,报错ERROR 1238 (HY000): Variable 'secure_file_priv' is a read only variable,后来得知需要通过修改配置文件my.cnf来实现。However,Mac下的MySQL5.7.26没有此文件(/etc/目录下),只能手动创建。

二、开干

  1. 查看配置文件可存放位置mysql --help|grep my.cnf,会出现/etc/my.cnf /etc/mysql/my.cnf /usr/local/mysql/etc/my.cnf ~/.my.cnf四个路径
  2. sudo mkdir -p /usr/local/mysql/etc
  3. cd /usr/local/mysql/etc
  4. sudo vim my.cnf
1
2
[mysqld]
secure_file_priv=''
  • 配置文件是ASNI/ASCII格式
  1. sudo chmod 664 my.cnf

  2. 重启MySQL

  3. 查看show variables like 'secure_file_priv';是否更改成功

三、参考

  1. 参考一