即使在/etc/my.cnf中configuration了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 ~]# 

提前致谢

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

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

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

如果它仍然没有写入文件,请检查确实有缓慢的查询! 并查看MySQL错误日志中的线索。