2014-03-24 117 views
6

我的MySQL版本细节如何启用MySQL慢查询日志?

  1. 服务器:localhost通过UNIX套接字
  2. 软件:MySQL的
  3. 软件版本:5.0.96社区日志 - MySQL社区版(GPL)
  4. 协议版本:10

如何启用MySQL慢查询日志?

+3

如果键入 “如何启动MySQL慢查询日志” 在谷歌中,有10个结果,让你瞬间copypaste结果。在问问题之前为什么不谷歌?它速度更快,它避免了像我这样会给你-1的人。 –

+0

@ N.B。事情是,如果你现在做你的谷歌搜索,这个问题是第二个结果。生命之轮... –

回答

1

如果您的服务器在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

+0

得到错误#1238 - 变量'log_slow_queries'是一个只读变量 – John

+0

由于MySQL版本少于5.1检查这个http://stackoverflow.com/questions/2403793/how-can-i-enable -mysqls-slow-query-log-without-restarting-mysql –

+0

由于5.6.1,'log_sloq_queries'被替换为'slow_query_log' - https://dev.mysql.com/doc/refman/5.6/en/server -system-variables.html#sysvar_slow_query_log –

33

版本5.1.6及以上版本:

1.输入MySQL她11和运行下面的命令:

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的壳和运行下面的命令活性:

show variables like '%slow%'; 

版本5.1.6如下:

  1. 用你最喜欢的文本编辑器编辑/etc/my.cnf文件 vi /etc/my.cnf

  2. 在“[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外壳中并运行以下:

show variables like '%slow%'; 

更新:1

根据MySQL的文档,错误#当您使用SQLSTATE的错误代码时,会发生1193错误。

Message: Unknown system variable %s 

而且,正如您在同一页面上看到的,未定义SQLSTATE 99003。

参考以下链接:

http://dev.mysql.com/doc/refman/5.5/en/slow-query-log.html

http://dev.mysql.com/doc/refman/5.1/en/slow-query-log.html

+0

#1193 - 未知的系统变量'slow_query_log' – John

+0

上面的错误是显示,而“set global slow_query_log ='ON';”命令通过phpmyadmin执行 – John

+0

@John,看看我的更新:1回答。 – jmail