如何在MySQL 5.0.45中记录慢查询

时间:2012-09-14 14:05:02

标签: mysql logging

我正在尝试在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秒,但我无法在任何地方找到日志。有什么想法吗?

2 个答案:

答案 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并尝试一下。