不能读取/etc/my.cnf目录。 (Errcode:2)

我正在运行MariaDB(libmysql – 5.5.41-MariaDB),今天我注意到我无法通过命令行去mysql创build一个转储文件。 这会抛出一个错误:

mysql:无法读取'/etc/my.cnf'的目录 (Errcode:2)默认处理中的致命错误。 程序中止

不知道为什么需要读一个名为“my.cnf”的目录。 但是我在etc文件夹中看到一个名为“my.cnf.d”的目录。 可能是某种types的错误,但是当我去my.cnf文件,我没有注意到任何设置。 唯一与此密切相关的是这样的:

# # include all files from the config directory # !includedir /etc/my.cnf.d 

这是最近发生的事情,我没有改变设置的任何东西,所以我不知道mariadb是怎么回事。 任何帮助,将不胜感激。

编辑:好吧,我通过做mkdir my.cnf解决了这个问题。 (不知道这个目录需要什么东西,因为里面什么都没有,从来没有改变任何东西到my.cnf为它开始需要这个目录..

鉴于它在禁用读取默认设置(–no-defaults)时工作,那么问题位于默认文件的某处,它们的权限或包含它们的目录的权限。

仔细检查/ etc,/etc/my.cnf,/etc/my.cnf.d,/etc/my.cnf.d中的文件以及〜/ .my.cnf文件的权限。

检查每个文件的内容以获取更多包含以及其他可能访问文件的指令。

如果启用SELinux,请检查/var/log/audit.log的内容以获取相关的AVC拒绝条目。

解决scheme其实很简单。

 !includedir /etc/my.cnf.d 

是/etc/my.cnf上的最后一行,所以mysql不能只读取“/etc/my.cnf.d”/etc/my.cnf。

你只需要添加一行,以便mysql可以读取它。

 !includedir /etc/my.cnf.d # add new line here 

您必须在!includedir /etc/my.cnf.d之后添加新的空行

!includedir /etc/my.cnf.d

空行

您只需在该行末尾按“enter”:!includedir /etc/my.cnf.d