问题来源
在docker中通过docker-compose 文件配置自定义的mysql的.cnf文件时,发现本地挂载的配置文件始终无法应用自己的配置文件。之后通过命令行进入数据库时,发现出现以下问题。
World-writable config file '/etc/mysql/mysql.conf.d/mysqld.cnf' is ignore
复制代码
至此无法挂载的问题原因终于找到了
解决方法
将配置文件的权限修改为只读。
chmod 0444 /etc/mysql/mysql.conf.d/mysqld.cnf
复制代码
重新启动数据库即可。
解释
容器中映射的my.cnf文件安全级别是777,任何人都可以修改,mysql判断太危险,所以忽略了/etc/mysql/mysql.conf.d/mysqld.cnf文件。赶紧将文件修改为0444或者644,只读或者只能用户修改。 链接说明:
补充说明
- /etc/mysql/mysql.cnf文件中有两行配置,数据库中一般先读取my.cnf之后会读取/etc/mysql/conf.d/
与/etc/mysql/mysql.conf.d/的*.cnf配置文件;
!includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mysql.conf.d/
复制代码