我正在尝试在启用 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 的问题。