![Ubuntu 上的 MySQL 8:/etc/mysql/conf.d/ 和 /etc/mysql/mysql.conf.d/ 之间有什么区别?](https://linux22.com/image/733813/Ubuntu%20%E4%B8%8A%E7%9A%84%20MySQL%208%EF%BC%9A%2Fetc%2Fmysql%2Fconf.d%2F%20%E5%92%8C%20%2Fetc%2Fmysql%2Fmysql.conf.d%2F%20%E4%B9%8B%E9%97%B4%E6%9C%89%E4%BB%80%E4%B9%88%E5%8C%BA%E5%88%AB%EF%BC%9F.png)
根据标题。/etc/mysql/my.cnf
我看到:
!includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mysql.conf.d/
两个位置的 .cnf 文件均已加载:为什么要有两个?哪一个才是我自己的 .cnf 的“正确”文件?
答案1
两者都是全局选项。在本例中,
!includedir /etc/mysql/mysql.conf.d/
是当 Mysql 在 CMAKE 选项中为包进行编译时由 ubuntu 生成的 SYSCONFDIR。
更多信息https://dev.mysql.com/doc/refman/8.0/en/option-files.html
答案2
就我而言,我必须将所有更改添加到目录中,/etc/mysql/mysql.conf.d/
因为它最后加载。因此,我将一个zz_myconfig.cnf
包含所有更改的文件添加到该目录中。否则,配置/etc/mysql/mysql.conf.d/mysqld.cnf
将再次覆盖我的设置,这很不幸。
如果该目录/etc/mysql/conf.d
是官方的路径那么它也应该是其中的最后一个包含目录/etc/mysql/my.cnf
。
答案3
两个子目录中的默认配置文件建议conf.d
用于客户端配置,并mysql.conf.d
用于服务器配置:
root@ubuntu-focal:~# grep "configuration file" /etc/mysql/conf.d/* etc/mysql/mysql.conf.d/*
/etc/mysql/conf.d/mysql.cnf:# The MySQL Client configuration file.
/etc/mysql/mysql.conf.d/mysqld.cnf:# The MySQL Server configuration file.