CentOS7环境下MySQL5.7配置后仍无法开启慢查询日志问题求助
解决步骤
第一步:排查SELinux拦截问题
CentOS 7默认开启的SELinux安全策略是导致该报错的最常见原因,MySQL进程对日志目录的读写操作会被SELinux默认规则拦截,即使目录已经设置了mysql属主权限也会触发Errcode:13错误。
执行命令查看SELinux状态:
sestatus
如果返回结果中Current mode为enforcing,先临时关闭SELinux验证问题:
setenforce 0
之后重启MySQL服务:
systemctl restart mysqld
登录MySQL执行以下命令查看慢查询状态:
show variables like 'slow_query_log';
如果返回值为ON,说明确实是SELinux导致的问题,可任选以下一种方式处理:
- 永久关闭SELinux:编辑
/etc/selinux/config文件,将SELINUX=enforcing修改为SELINUX=disabled,保存后重启服务器生效。 - 保留SELinux,给日志目录添加对应权限标签:
semanage fcontext -a -t mysqld_log_t "/var/log/mysql(/.*)?" restorecon -Rv /var/log/mysql
第二步:确认目录与文件权限配置正确
再次确认日志目录和文件的权限设置:
# 设置目录权限 chmod 750 /var/log/mysql chown -R mysql:mysql /var/log/mysql # 如果已提前创建慢查询日志文件,设置文件权限 chmod 640 /var/log/mysql/slow_query.log
第三步:验证配置生效
完成以上操作后重启MySQL,再次查询慢查询日志状态,确认配置生效即可。
内容的提问来源于stack exchange,提问作者Tomotopieces
相关产品推荐
相关产品推荐

