即使在 /etc/my.cnf 中配置了 mysql.slow.log,也没有创建它,可能是什么原因?

即使在 /etc/my.cnf 中配置了 mysql.slow.log,也没有创建它,可能是什么原因?

这是来自的相关部分/etc/my.cnf

[mysqld]
slow-query-log            = ON
long_query_time           = 2
log_slow_queries          = /var/log/mysql-slow.log

问题是文件丢失了,即使我touch找到了,也没有写入任何内容。我尝试将日志位置更改为,文件$datadir/mysql-slow.log中的/etc/my.cnf内容如下所示:

log_slow_queries          = mysql-slow.log

我忘了说一下,该文件的用户和所有者mysql-slow.log是 mysql。但它不能正常工作,有什么解决办法吗?

[root@dbsrv ~]# grep slow /etc/my.cnf 
slow-query-log              = ON
log_slow_queries            = /var/log/mysql/mysql-slow.log 
slow-query-log              = ON
log_slow_queries            = /var/log/mysql/slow.log
[root@dbsrv ~]# ll /var/log/mysql/slow.log ; ll /var/log/mysql/mysql-slow.log
-rwxrwxrwx 1 mysql mysql 0 2014-02-04 18:23 /var/log/mysql/slow.log
-rwxrwxrwx 1 mysql mysql 0 2014-02-04 18:23 /var/log/mysql/mysql-slow.log
[root@dbsrv ~]# 

提前致谢

答案1

它需要存在并且可由 mysqld uid 写入当 mysqld 启动时, 因此:

# touch /var/log/mysql-slow.log
# chown mysql /var/log/mysql-slow.log
# /etc/init.d/mysqld restart

(或者,不用重新启动服务器,您可以执行 mysqladmin -u root flush-logs)

如果仍然没有写入文件,请检查您的查询是否确实很慢!并查看 MySQL 错误日志以寻找线索。

相关内容