【问题标题】:How do I enable the MySQL slow query log? [duplicate]如何启用 MySQL 慢查询日志? [复制]
【发布时间】:2014-05-01 19:13:39
【问题描述】:

我的 MySQL 版本详细信息是

  1. 服务器:通过 UNIX 套接字的本地主机
  2. 软件:MySQL
  3. 软件版本:5.0.96-community-log - MySQL 社区版 (GPL)
  4. 协议版本:10

如何开启 MySQL 慢查询日志?

【问题讨论】:

  • @N.B.事情是,如果你现在进行谷歌搜索,这个问题是第二个结果。人生的转折……

标签: mysql sql


【解决方案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

【讨论】:

【解决方案2】:

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 的版本:

  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 shell 并运行以下命令来确认更改处于活动状态:

show variables like '%slow%';

更新:1

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

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

【讨论】:

  • #1193 - 未知系统变量'slow_query_log'
  • 在“set global slow_query_log = 'ON';”时显示上述错误怎么办命令通过 phpmyadmin 执行
  • @John,看看我的更新:1 个答案。
  • 设置查询在被记录之前需要运行的时间量时,如果发生错误:ERROR 1232 (42000): Incorrect argument type to variable ,请改用:set global long_query_time = 5;
  • 设置全局 long_query_time = '20';在mysql中出错,请不要引用数字
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-09-22
  • 1970-01-01
  • 2015-12-25
  • 2012-06-01
  • 2012-07-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多