我正在尝试在MySQL v5.0.45(编译操作系统:redhat-linus-gnu)上打开慢速查询的记录,但我似乎无法让它工作。我试着添加......
long_query_time = 1
将我的/etc/my.cnf文件作为[mysqld]部分下的最后一个选项,然后使用命令重新启动...
sudo /sbin/service mysqld restart --log-slow-queries=/var/log/slowqueries.log
然后我运行程序,我知道SELECT查询需要大约6-8秒,但我无法在任何地方找到日志。有什么想法吗?
答案 0 :(得分:3)
对于MySQL 5.0,您要在my.cnf中使用的变量是:
log-slow-queries = /var/log/mylogname.log
您需要手动创建此文件并将所有权和组设置为mysql。您可以在命令行上执行以下操作:
touch /var/log/mylogname.log
chown mysql /var/log/mylogname.log
chgrp mysql /var/log/mylogname.log
您还可以设置您认为“长”的时间长度:
long_query_time = 2
您可以使用以下方法添加不使用索引执行的查询:
log-queries-not-using-indexes
但是,这可能会非常快地填满你的日志。
我发现奇怪的是,有些变量使用下划线,有些使用连字符,根据你设置变量的方式,通过my.cnf或命令行,它可能会有所不同。以下是您可以在MySQL 5.0中设置的所有系统变量的列表:http://dev.mysql.com/doc/refman/5.0/en/server-options.html
其他奇怪的是:这个文档说log-slow-queries是一个布尔值,当我检查我的全局变量时(在mysql中,输入'show global variables;'),它显示的值为' ON',而不是我设置的文件路径。无论如何,这对我有用,它写了文件。
答案 1 :(得分:0)
在你的/etc/my.cnf中添加log_slow_queries = /var/log/mysql/slowqueries.log
然后像往常一样重启mysql,例如sudo service mysqld restart
并尝试一下。