小知识:MySQL配置文件优先级
今天在RHEL7上,严格按之前的安装规范文档,部署MySQL环境时,发现通过服务的方式启动MySQL失败: 关键错误是: log-error set to '/var/log/mariadb/mariadb.log', however file don't exists. Create writable for user 'mysql'. 规范的配置文件是:/etc/mysql/my.cnf,其中也有对应 log-error 参数的值,并不是上面错误提示的路径。 而且为何会有mariadb字样呢,猜测可能是RHEL7默认配套mariadb的原因,但是查询安装相关的rpm包,也未发现有mariadb的服务端。 最后对比发现,RHEL7默认的/etc/my.cnf有默认值,即使mariadb没有安装,而这个默认值里配置的 log-error 参数值正好匹配报错信息。 解决方案有两个: 1.删掉/etc/my.cnf配置文件 2.使用规范的参数配置,直接覆盖/etc/my.cnf配置文件 我这里选择了第二种方案,成功解决问题。 最后复盘时发现用: mysql --help|more 可以看到参数文件的顺序是如下: Default options are read from the following files in the given order: /etc/my.cnf /etc