mysql - 仍然无法启用慢查询日志
问题描述
环境
这是我的环境:
- 系统:CentOS 7
- 虚拟机,由virtualbox创建,只安装了mysql
- MySQL:5.7.35
- 通过这个中文教程设置 MySQL:链接
- 我的.cnf:
[mysqld]
# slow query log
slow_query_log=on
slow_query_log_file=/var/log/mysql/slow_query.log
long_query_time=1
# UTF-8
collation-server=utf8_general_ci
init-connect='SET NAMES utf8'
character-set-server=utf8
# disable case sensitive
lower_case_table_names=1
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
[mysql]
default-character-set=utf8
[client]
default-character-set=utf8
我已经创建了日志文件并以 root 身份执行了这些文件:
chown -R mysql:mysql /var/log/mysql
service mysqld restart
问题
慢查询日志未开启
当我以 root 身份在 mysql 中尝试此操作时:
show variables like '%slow%';
它显示了这些:
+---------------------------+-------------------------------+
| Variable_name | Value |
+---------------------------+-------------------------------+
| log_slow_admin_statements | OFF |
| log_slow_slave_statements | OFF |
| slow_launch_time | 2 |
| slow_query_log | OFF |
| slow_query_log_file | /var/log/mysql/slow_query.log |
+---------------------------+-------------------------------+
试过了
当我尝试手动启用查询日志时:
set global slow_query_log = ON;
错误
ERROR 29 (HY000): File '/var/log/mysql/slow_query.log' not found (Errcode: 13 - Permission denied)
其他:
- 在
general_log=on
下面添加[mysqld]
my.cnf
- 替换
on
或ON
按数字1
我做错什么了吗?也许是一个简单的愚蠢错误,但我无法弄清楚......
非常感谢
解决方案
鉴于目录所有权是正确的,并且它的 Centos7,您需要修复 selinux 权限。
手动条目在此页面上使用mysqld_log_t
,与错误日志相同,因为这将允许 logrotate 规则访问它。
semanage fcontext -a -t mysqld_log_t /var/log/mysql/slow_query.log
然后你应该能够启用,即使在运行时:
set global slow_query_log = ON;