【发布时间】:2014-05-01 19:13:39
【问题描述】:
我的 MySQL 版本详细信息是
- 服务器:通过 UNIX 套接字的本地主机
- 软件:MySQL
- 软件版本:5.0.96-community-log - MySQL 社区版 (GPL)
- 协议版本:10
如何开启 MySQL 慢查询日志?
【问题讨论】:
-
@N.B.事情是,如果你现在进行谷歌搜索,这个问题是第二个结果。人生的转折……
我的 MySQL 版本详细信息是
如何开启 MySQL 慢查询日志?
【问题讨论】:
如果您的服务器高于 5.1.6,您可以在运行时本身设置慢查询日志。您必须为此执行此查询。
set global log_slow_queries = 1;
set global slow_query_log_file = <some file name>;
或者您也可以在my.cnf/my.ini 选项文件中设置此选项
log_slow_queries = 1;
slow_query_log_file = <some file name>;
参考:http://dev.mysql.com/doc/refman/5.1/en/server-system-variables.html#sysvar_slow_query_log_file
【讨论】:
log_sloq_queries 被 slow_query_log 取代 - dev.mysql.com/doc/refman/5.6/en/…
5.1.6 及以上版本:
1.进入 MySQL shell 并运行以下命令:
set global slow_query_log = 'ON';
2。启用任何其他所需的选项。以下是一些常见示例:
预期检索所有行而不是使用索引的查询的日志详细信息:
set global log_queries_not_using_indexes = 'ON'
设置慢查询日志的路径:
set global slow_query_log_file ='/var/log/mysql/slow-query.log';
设置查询在被记录之前需要运行的时间量:
set global long_query_time = 20;
(default is 10 seconds)
3.进入 MySQL shell 并运行以下命令,确认更改处于活动状态:
show variables like '%slow%';
低于 5.1.6 的版本:
使用您喜欢的文本编辑器编辑 /etc/my.cnf 文件 vi /etc/my.cnf
在“[mysqld]”部分下添加以下行。随意将日志文件的路径更新为您想要的任何内容:
log-slow-queries=/var/log/mysql/slow-query.log
3.根据需要启用其他选项。以下是上述相同的常用示例:
设置查询在被记录之前需要运行的时间量:
`long_query_time=20
(default is 10 seconds)`
预期检索所有行而不是使用索引的查询的日志详细信息:
`log-queries-not-using-indexes`
4.重启 MySQL 服务:
service mysqld restart
5.通过进入 MySQL shell 并运行以下命令来确认更改处于活动状态:
show variables like '%slow%';
更新:1
根据 MySQL 文档,错误 #1193 发生在您使用错误的 SQLSTATE 代码时。
Message: Unknown system variable %s
而且,正如您在同一页面上所见,未定义 SQLSTATE 99003。
参考这个链接:
【讨论】:
set global long_query_time = 5;