my.cnf 是 mysql 启动时加载的配置文件,一般会放在 mysql 的安装目录中,用户也可以放在其他目录加载。
安装 mysql 后,系统中会有多个 my.cnf 文件,有些是用于测试的。
使用 locate my.cnf 命令可以列出所有的 my.cnf 文件
命令
locate my.cnf
输出
/usr/``local``/Cellar/mysql/5.6.24/my.cnf``/usr/``local``/Cellar/mysql/5.6.24/mysql-test/include/default_my.cnf``/usr/``local``/Cellar/mysql/5.6.24/mysql-test/suite/federated/my.cnf``/usr/``local``/Cellar/mysql/5.6.24/mysql-test/suite/ndb/my.cnf``/usr/``local``/Cellar/mysql/5.6.24/mysql-test/suite/ndb_big/my.cnf``/usr/``local``/Cellar/mysql/5.6.24/mysql-test/suite/ndb_binlog/my.cnf``/usr/``local``/Cellar/mysql/5.6.24/mysql-test/suite/ndb_rpl/my.cnf``/usr/``local``/Cellar/mysql/5.6.24/mysql-test/suite/ndb_team/my.cnf``/usr/``local``/Cellar/mysql/5.6.24/mysql-test/suite/rpl/extension/bhs/my.cnf``/usr/``local``/Cellar/mysql/5.6.24/mysql-test/suite/rpl/my.cnf``/usr/``local``/Cellar/mysql/5.6.24/mysql-test/suite/rpl_ndb/my.cnf
当我们需要修改配置文件时,需要找到 mysql 启动时是加载了哪个 my.cnf 文件。
1、查看是否使用了指定目录的 my.cnf
启动 mysql 后,我们查看 mysql 的进程,看看是否有设置使用指定目录的 my.cnf 文件,如果有则表示 mysql 启动时是加载了这个配置文件。
命令
ps aux|grep mysql|grep 'my.cnf'
输出
fdipzone 25174 0.0 0.0 3087244 600 ?? S 4:12下午 0:01.14 /usr/``local``/Cellar/mysql/5.6.24/bin/mysqld ``--defaults-file=/usr/local/Cellar/mysql/5.6.24/my.cnf --basedir=/usr/local/Cellar/mysql/5.6.24 --datadir=/usr/local/var/mysql --plugin-dir=/usr/local/Cellar/mysql/5.6.24/lib/plugin --bind-address=127.0.0.1 --log-error=/usr/local/var/mysql/TerrydeMacBook-Air.local.err --pid-file=/usr/local/var/mysql/TerrydeMacBook-Air.local.pid``fdipzone 25064 0.0 0.0 2452824 4 ?? S 4:12下午 0:00.03 /bin/sh /usr/``local``/opt/mysql/bin/mysqld_safe ``--defaults-file=/usr/local/Cellar/mysql/5.6.24/my.cnf --bind-address=127.0.0.1 --datadir=/usr/local/var/mysql
可以看到/usr/local/Cellar/mysql/5.6.24/my.cnf 就是 mysql 启动加载的配置文件。
如果上面的命令没有输出,表示没有设置使用指定目录的 my.cnf。
2、查看 mysql 默认读取 my.cnf 的目录
如果没有设置使用指定目录的 my.cnf,mysql 启动时会读取安装目录根目录及默认目录下的 my.cnf 文件。
查看 mysql 启动时读取配置文件的默认目录
命令
mysql --help|grep 'my.cnf'
输出
order` `of` `preference, my.cnf, $MYSQL_TCP_PORT,``/etc/my.cnf /etc/mysql/my.cnf /usr/``local``/etc/my.cnf ~/.my.cnf``/etc/my.cnf, /etc/mysql/my.cnf, /usr/``local``/etc/my.cnf, ~/.my.cnf
这些就是 mysql 默认会搜寻 my.cnf 的目录,顺序排前的优先。
3、启动时没有使用配置文件
如果没有设置使用指定目录 my.cnf 文件及默认读取目录没有 my.cnf 文件,表示 mysql 启动时并没有加载配置文件,而是使用默认配置。
需要修改配置,可以在 mysql 默认读取的目录中,创建一个 my.cnf 文件(例如:/etc/my.cnf),把需要修改的配置内容写入,重启 mysql 后即可生效。
我的个人首页 http://www.songaw.com
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于