MySQL 5.1.6以上版本动态开启慢查询日志

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
云数据库 RDS MySQL Serverless,价值2615元额度,1个月
简介:

以MySQL 5.1.36为例:
在slow_query_log (注意log_slow_querys参数已经废弃)值为ON的情况下(默认为OFF),当一条SQL语句执行的时间超过了long_query_time 预设的时间(默认为10s,同时精确到微秒)时,默认(log_output值为FIFL时)就会把这种慢查询记录到:slow_query_log_file值所指定的文件中。

mysql> select @@global.log_output;
+---------------------+
| @@global.log_output |
+---------------------+
| FILE                | 
+---------------------+
1 row in set (0.00 sec)

注意在MySQL5.1就开始支持把慢查询的日志记录放到mysq.slow_log中,但需要设置log_output变量值为TABLE:
mysql> set @@global.log_output='TABLE';
Query OK, 0 rows affected (0.00 sec)

mysql> desc mysql.slow_log;
+----------------+------------------+------+-----+-------------------+-----------------------------+
| Field          | Type             | Null | Key | Default           | Extra                       |
+----------------+------------------+------+-----+-------------------+-----------------------------+
| start_time     | timestamp        | NO   |     | CURRENT_TIMESTAMP | on update CURRENT_TIMESTAMP | 
| user_host      | mediumtext       | NO   |     | NULL              |                             | 
| query_time     | time             | NO   |     | NULL              |                             | 
| lock_time      | time             | NO   |     | NULL              |                             | 
| rows_sent      | int(11)          | NO   |     | NULL              |                             | 
| rows_examined  | int(11)          | NO   |     | NULL              |                             | 
| db             | varchar(512)     | NO   |     | NULL              |                             | 
| last_insert_id | int(11)          | NO   |     | NULL              |                             | 
| insert_id      | int(11)          | NO   |     | NULL              |                             | 
| server_id      | int(10) unsigned | NO   |     | NULL              |                             | 
| sql_text       | mediumtext       | NO   |     | NULL              |                             | 
+----------------+------------------+------+-----+-------------------+-----------------------------+
11 rows in set (0.01 sec)

注意,文件记录和写表记录只会有一种生效。


修改之前:
mysql> show variables like '%slow%';
+---------------------+------------------------------------------------+
| Variable_name       | Value                                          |
+---------------------+------------------------------------------------+
| log_slow_queries    | OFF                                            | 
| slow_launch_time    | 2                                              | 
| slow_query_log      | OFF                                            | 
| slow_query_log_file | /usr/local/mysql-5.1.36/var/localhost-slow.log | 
+---------------------+------------------------------------------------+
mysql> 
4 rows in set (0.00 sec)

注意这个时候localhost-slow.log文件是不存在的:
mysql> system cat /usr/local/mysql-5.1.36/var/localhost-slow.log
cat: /usr/local/mysql-5.1.36/var/localhost-slow.log: No such file or directory

修改slow_query_log的方法:
mysql> warnings;
Show warnings enabled.
mysql> set @@global.log_slow_queries=ON;
Query OK, 0 rows affected, 1 warning (0.01 sec)
Warning (Code 1287): The syntax '@@log_slow_queries' is deprecated and will be removed in MySQL 7.0. Please use '@@slow_query_log' instead
注意已经不再使用log_slow_queries参数,用slow_query_log替代,这样修改slow_query_log时,log_slow_queries也会被隐性地修改:

mysql> set @@global.slow_query_log=ON;
Query OK, 0 rows affected (0.00 sec)

修改之后:
mysql> show variables like '%slow%';
+---------------------+------------------------------------------------+
| Variable_name       | Value                                          |
+---------------------+------------------------------------------------+
| log_slow_queries    | ON                                             | 
| slow_launch_time    | 2                                              | 
| slow_query_log      | ON                                             | 
| slow_query_log_file | /usr/local/mysql-5.1.36/var/localhost-slow.log | 
+---------------------+------------------------------------------------+
4 rows in set (0.00 sec)

这时localhost-slow.log文件已经建立:
mysql> system cat /usr/local/mysql-5.1.36/var/localhost-slow.log
/usr/local/mysql-5.1.36/libexec/mysqld, Version: 5.1.36-log (Source distribution). started with:
Tcp port: 3306  Unix socket: /tmp/mysql.sock
Time                 Id Command    Argument

分析时我们可以直接查询慢查询日志,也可以通过mysqldumpslow命令(推荐)来解析这个文件:
[root@localhost var]# mysqldumpslow localhost-slow.log 
Reading mysql slow query log from localhost-slow.log
Count: 1  Time=0.00s (0s)  Lock=0.00s (0s)  Rows=0.0 (0), 0users@0hosts

我们可以通过sleep函数来做简单的测试:
如:select sleep(11);


     本文转自xiaoyuwang 51CTO博客,原文链接:http://blog.51cto.com/wangxiaoyu/470271,如需转载请自行联系原作者



相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
17天前
|
监控 关系型数据库 MySQL
《MySQL 简易速速上手小册》第7章:MySQL监控和日志分析(2024 最新版)
《MySQL 简易速速上手小册》第7章:MySQL监控和日志分析(2024 最新版)
37 3
|
28天前
|
关系型数据库 MySQL 数据库
mysql卸载、下载、安装(window版本)
mysql卸载、下载、安装(window版本)
|
8天前
|
关系型数据库 MySQL Shell
备份 MySQL 的 shell 脚本(mysqldump版本)
【4月更文挑战第28天】
21 0
|
27天前
|
SQL 缓存 关系型数据库
mysql性能优化-慢查询分析、优化索引和配置
mysql性能优化-慢查询分析、优化索引和配置
91 1
|
18小时前
|
关系型数据库 MySQL Linux
Linux CentOs7 安装Mysql(5.7和8.0版本)密码修改 超详细教程
Linux CentOs7 安装Mysql(5.7和8.0版本)密码修改 超详细教程
|
6天前
|
DataWorks 关系型数据库 MySQL
DataWorks产品使用合集之在DataWorks中,如何通过PolarDB for MySQL来查看binlog日志
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
18 1
|
7天前
|
SQL 监控 关系型数据库
【MySQL学习】MySQL的慢查询日志和错误日志
【MySQL学习】MySQL的慢查询日志和错误日志
|
7天前
|
弹性计算 关系型数据库 MySQL
备份MySQL(mysqldump 版本)
【4月更文挑战第29天】
15 0
|
10天前
|
SQL 存储 关系型数据库
MySQL三大日志详解
MySQL三大日志详解
14 0
|
13天前
|
SQL 存储 关系型数据库
MySQL慢日志的介绍以及如何使用问题
MySQL慢日志的介绍以及如何使用问题
16 0