MySQL 配置文件 my.cnf 的读入顺序
首先查看当前运行 mysql 进程时有没有指定 my.cnf 文件:
ps aux | grep mysql | grep 'my.cnf'
如果上面的命令没有输出,表示启动 mysql 时没有指定 --defaults-file=/path/to/my.cnf
敲入以下命令,得知 my.cnf 的默认搜寻顺序:
mysql --help | grep 'Default options' -A 1
会显示如下信息:
Default options are read from the following files in the given order:
/etc/my.cnf /etc/mysql/my.cnf /usr/local/etc/my.cnf ~/.my.cnf
我们依次到以上目录去找是否有对应的 my.cnf。
如果启动 mysql 既没有设置 --defaults-file
,默认的读取目录也找不到 my.cnf 文件,那么表示 mysql 启动时没有任何加载配置文件,而是使用默认配置。
MacOS 里通过 homebrew 安装的 MySQL 5.7 缺省启动时就没有加载 my.cnf
敲入 locate my*.cnf
可列出所有 my.cnf 文件:
/usr/local/Cellar/mysql/5.7.14/support-files/my-default.cnf
/usr/local/Cellar/mysql/5.7.14/mysql-test/include/default_my.cnf
/usr/local/Cellar/mysql/5.7.14/mysql-test/suite/federated/my.cnf
/usr/local/Cellar/mysql/5.7.14/mysql-test/suite/ndb/my.cnf
.....
第一个 support-files/my-default.cnf
是我们要找的,把它复制到 /usr/local/etc/
下。
cp /usr/local/opt/mysql/support-files/my-default.cnf /usr/local/etc/my.cnf
重启 mysql 后配置即可生效。
sudo launchctl unload -w /Library/LaunchDaemons/homebrew.mxcl.mysql.plist
或
launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist