原文链接:http://bbs.landingbj.com/t-0-246411-1.html
修改了 my.cnf 配置文件后,却不生效,这是怎么回事?
我们注意到,这里只说了修改 my.cnf,并没有说清楚其绝对路径是哪个文件。也就是说,有可能修改的不是正确路径下的my.cnf文件。
在MySQL中,是允许存在多个 my.cnf 配置文件的,有的能对整个系统环境产生影响,例如:/etc/my.cnf。有的则只能影响个别用户,例如:~/.my.cnf。
MySQL读取各个my.cnf配置文件的先后顺序是:
/etc/mysql/my.cnf
/usr/local/mysql/etc/my.cnf
~/.my.cnf
其他自定义路径下的my.cnf,例如:/data/mysql/yejr_3306/my.cnf
不管是mysqld服务器端程序,还是mysql客户端程序,都可以采用下面两个参数来自行指定要读取的配置文件路径:
–defaults-extra-file=#, 从其他优先级更高的配置文件中读取全局配置后,再读取指定的配置文件(有些选项可以覆盖掉全局配置从的设定值)
因此,可以看到,如果你修改的是非“著名”目录下的 my.cnf,有可能看起来是不生效的,需要自行指定,或者统一放在 /etc/my.cnf 下,采用多实例的方式来管理即可。
转自联动北方技术论坛
比如我把Percona Server编译到/png/percona/5.6.16
执行/png/percona/5.6.16/bin/mysql--help|grep my.cnf就可以看到以下顺序:
/etc/my.cnf /etc/mysql/my.cnf /png/percona/5.6.16/etc/my.cnf ~/.my.cnf
越往后面,优先级越高.为了避免混乱,建议只保留一个配置.
另外服务器端mysqld和客户端mysql的配置读取顺序也是如此.
区别在于服务器端mysqld读取配置[mysqld]下的内容,客户端mysql读取配置[client]下的内容.
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。