mysql - 如何启用 MySQL 慢查询日志?

标签 mysql sql

我的 MySQL 版本详细信息是

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

如何开启 MySQL 慢查询日志?

最佳答案

5.1.6 及以上版本:

1.进入 MySQL shell 并运行以下命令:

设置全局 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

关于mysql - 如何启用 MySQL 慢查询日志?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22609257/

相关文章:

mysql - 通过将以下查询合并为一个来加速它们

sql - T-SQL 错误 : "The multi-part identifier X.Y could not be bound"

sql - 使用后备语言检索 i18n 数据

mysql - sql - 日历表

php - 'simplexml' php 到 mysql 数据库循环只返回第一个元素

php - 在 mysql 中存储复选框值

mysql - SQL - 限制查询

mysql - mysql中不使用分析函数的RANK函数的性能

python - 操作参数在sql/python中必须是str

php - 为什么以下 SQL 命令不能与 PHP 中的 mysql_query 一起使用?