我的MySQL版本详情
如何启用MySQL慢查询日志?
答案 0 :(得分:67)
版本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文档,当您使用错误的SQLSTATE代码时,会出现错误#1193。
Message: Unknown system variable %s
而且,正如您在同一页面上看到的那样,SQLSTATE 99003未定义。
参考此链接:
答案 1 :(得分:3)
如果您的服务器高于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