3

我正在尝试在 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 秒的程序,但我在任何地方都找不到日志。有任何想法吗?

4

2 回答 2

4

对于 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',不是我设置的文件路径。无论如何,这对我有用,它写了文件。

于 2013-11-24T20:49:27.220 回答
0

在您的 /etc/my.cnf 添加log_slow_queries = /var/log/mysql/slowqueries.log然后像往常一样重新启动 mysql,例如sudo service mysqld restart并试一试。

于 2012-09-14T14:19:25.480 回答