最近看了很多篇mysql相关的博客, 涉及的配置文件路径如下, 不知道到底该用哪个
(1)
/etc/mysql/my.cnf
(2)
/etc/mysql/mysql.conf.d/mysqld.cnf
(3)
/etc/mysql/conf.d/mysql.cnf
所以, mysql服务端的配置文件到底是用上面哪一个呢?
还是说不同的mysql版本用不同的配置文件?
那么mysql5.7用的是哪个配置文件?
mysql8.0(我现在用的版本)用的是哪个配置文件? (我感觉应该是第二个, 对吗?)
如果有大神能讲一讲这三个配置文件分别是用来干什么的就更好了
无责声明:以下内容没有经过验证,阅读时多思考,多谨慎
如何获取配置文件的加载顺序:
在命令行执行: mysql --help 命令,执行后你可以找到类似下面这些内容(我的环境是 MACOS)
上面的内容说明当前环境下
去哪里
寻找配置文件;以上命令可能不是最有效的,如有更好的命令或者方法请补充谢谢。我的个人
理解:第一张图片内容中的
!includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mysql.conf.d/
这两行的含义是:在/etc/mysql/my.cnf 文件中导入 /etc/mysql/conf.d/目录下以及/etc/mysql/mysql.conf.d/目录下所有以 .cnf 结尾的配置文件,任何其他形式结尾的配置文件将被忽略
为什么配置文件的扩展名以 .cnf结尾才有效,其他任何形式的都无效尼?我是根据下面的英语判断的:
Additional settings that can override those from this file!
The files must end with ‘.cnf’, otherwise they’ll be ignored.
总结
在/etc/mysql/my.cnf 配置文件中 包含在/etc/mysql/conf.d/目录下以及/etc/mysql/mysql.conf.d/目录下所有以 .cnf 结尾的配置文件;如果在这两个被包含的目录下存在的配置文件中的配置项与/etc/mysql/my.cnf 配置文件中的配置项有冲突,则会覆盖掉 /etc/mysql/my.cnf 文件中的配置项
如何验证
这里给出能想到的,其他更好的方法也可以
1 修改 /etc/mysql/mysql.conf.d/mysqld.cnf 里面的配置项看能否有效果
2 在/etc/mysql/my.cnf 文件中添加相同的配置项,看看重复的配置项是否被覆盖
其他
牛
书
,推荐一下我觉得不错的一本书<<Mysql是怎样运行的>>
,不一定适合每个人,所以建议先看看内容,感觉oK可以支持一下作者.