修改 SELinux 设置以允许 MySQL 在 CentOS7 上运行

修改 SELinux 设置以允许 MySQL 在 CentOS7 上运行

我正在尝试在启用 SELinux 的 Cent OS 7 上安装 MySQL 5.6,并尝试克服错误(在/var/log/audit/audit.log):

type=AVC msg=audit(1424111345.853:558): avc:  denied  { execmem } for  pid=1795 comm="mysqld" scontext=system_u:system_r:mysqld_t:s0 tcontext=system_u:system_r:mysqld_t:s0 tclass=process

我的安装过程相当简单,在 virutalbox 虚拟机中,我使用 CentOS7 iso 来安装操作系统,并选择最小化作为安装类型。

然后,我通过运行以下命令添加 mysql yum 存储库:yum install http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm

然后使用以下命令安装 MySQL:yum install mysql-community-server

安装时没有看到任何错误,但是当尝试运行 systemctl start mysqld 时,我最终看到了上面的 SElinux 消息。

我参加了有关 SELinux 的快速在线课程,并遇到了audit2allow 故障排除工具,它告诉我我缺少类型强制允许规则。运行audit2allow -a 给我:

#============= mysqld_t ==============
allow mysqld_t self:process execmem;

阻止我继续实际创建该模块的原因很简单,我发现很难相信 SELinux 现在还没有让 MySQL 无需修改其配置即可运行的策略。其他人是否必须这样做,或者您做了什么才能让 MySQL 在 CentOS 7 上运行?

答案1

5.6.23 版本中的 MySQL 错误导致了该问题:http://bugs.mysql.com/bug.php?id=75912,使用 5.6.24 或更高版本可以解决 SELinux 的问题。

相关内容