my.cnf 是 MySQL 启动时加载的配置文件, 一般会放在 MySQL 的安装目录中, 用户也可以放在其他目录加载.
安装 MySQL 后, 系统中会有多个 my.cnf 文件, 有些是用于测试的.
使用 locate my.cnf 命令可以列出所有的 my.cnf 文件
注意: 执行 locate 之前先执行 updatedb, 更新系统库. 默认系统时凌晨更新库, 如果你上午 8 点添加配置文件, 执行 locate 可能就显示出来
命令
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'
- [root@Linux-node1 ~]# ps aux |grep MySQL
- root 2684 0.0 0.0 106100 736 ? S Mar30 0:00 /bin/sh /usr/bin/mysqld_safe --datadir=/var/lib/MySQL
- --socket=/var/lib/MySQL/MySQL.sock --pid-file=/var/run/mysqld/mysqld.pid --basedir=/usr --user=MySQL
- MySQL 2831 0.2 2.2 2232232 45212 ? Sl Mar30 33:28 /usr/libexec/mysqld --basedir=/usr
- --datadir=/var/lib/MySQL --user=MySQL --log-error=/var/lib/MySQL/Linux-node1.example.com.err
- --pid-file=/var/run/mysqld/mysqd.pid --socket=/var/lib/MySQL/MySQL.sock --port=3306
- root 95228 0.0 0.0 103256 944 pts/0 S+ 13:00 0:00 grep --colour=auto MySQL
- [root@Linux-node1 ~]# ps aux |grep MySQL | grep 'my.cnf'
- [root@Linux-node1 ~]#
如果上面的命令没有输出, 表示没有设置使用指定目录的 my.cnf.
2, 查看 MySQL 默认读取 my.cnf 的目录
如果没有设置使用指定目录的 my.cnf,MySQL 启动时会读取安装目录根目录及默认目录下的 my.cnf 文件.
查看 MySQL 启动时读取配置文件的默认目录
命令
- MySQL --help|grep 'my.cnf'
- [root@Linux-node1 ~]# MySQL --help | grep 'my.cnf'
- order of preference, my.cnf, $MYSQL_TCP_PORT,
- /etc/MySQL/my.cnf /etc/my.cnf ~/.my.cnf
- [root@Linux-node1 ~]#
这些就是 MySQL 默认会搜寻 my.cnf 的目录, 顺序排前的优先.
3, 启动时没有使用配置文件
如果没有设置使用指定目录 my.cnf 文件及默认读取目录没有 my.cnf 文件, 表示 MySQL 启动时并没有加载配置文件, 而是使用默认配置.
需要修改配置, 可以在 MySQL 默认读取的目录中, 创建一个 my.cnf 文件 (例如:/etc/my.cnf), 把需要修改的配置内容写入,
重启 MySQL 后即可生效.
来源: http://www.bubuko.com/infodetail-2972651.html