Linux-MySQL开启慢查询日志

前言

MySQL的慢查询日志是MySQL提供的一种日志记录,它用来记录在MySQL中响应时间超过阀值(long_query_time,单位:秒)的SQL语句。默认情况下,MySQL不启动慢查询日志.本文简单介绍如何开启慢查询日志,如何用mysqldumpslow分析慢查询.

参数说明

slow_query_log #慢查询开启状态,ON开启,OFF关闭
slow_query_log_file #慢查询日志存放的位置(这个目录需要MySQL的运行帐号的可写权限,一般设置为MySQL的数据存放目录)
long_query_time #查询超过多少秒才记录  默认10s ,查询命令 SHOW VARIABLES LIKE 'long_query_time';
log_queries_not_using_indexes = 1 #表明记录没有使用索引的 SQL 语句
# 重点说明:开启慢日志版本要高,低版本无法支持,本次版本是:5.5.68-MariaDB

配置开启慢查询

编辑MySQL配置文件my.cnf如果不知道my.cnf文件在哪可以用find命令查找:find / -name my.cnf
[mysqld]字段下加入:

long_query_time=1 #表示记录查询超过1s的sql
slow_launch_time=1 #表示如果建立线程花费了比这个值更长的时间,slow_launch_threads 计数器将增加
slow_query_log=ON #开启慢查询日志
slow_query_log_file=/var/lib/mysql/slow_queries.log #慢查询日志记录文件
注意:慢查询的日志记录文件对于mysql用户必须可写!!!
MariaDB [(none)]> show variables like 'slow_query%';
+---------------------+------------------------+
| Variable_name       | Value                  |
+---------------------+------------------------+
| slow_query_log      | OFF                    |
| slow_query_log_file | VM-8-7-centos-slow.log |
+---------------------+------------------------+
2 rows in set (0.01 sec)

测试

MariaDB [(none)]> select sleep(2);
+----------+
| sleep(2) |
+----------+
|        0 |
+----------+
1 row in set (2.00 sec)
[root@VM-8-7-centos ~]# cat  /var/lib/mysql/slow_queries.log
/usr/sbin/mysqld, Version: 5.7.34-log (MySQL Community Server (GPL)). started with:
Tcp port: 0  Unix socket: /var/lib/mysql/mysql.sock
Time                 Id Command    Argument
# Time: 2021-08-20T10:01:18.841053Z
# User@Host: root[root] @ localhost []  Id:     3
# Query_time: 2.023306  Lock_time: 0.000000 Rows_sent: 1  Rows_examined: 0
SET timestamp=1629453678;
select sleep(2);

删除慢查询日志

慢查询日志的删除方法与通用日志的删除方法是一样的.可以使用mysqladmin命令来删除.也可以使用手工方式来删除.mysqladmin 命令的语法如下mysqladmin -uroot -p flush-logs

执行该命令后,命令行会提示输入密码.输入正确密码后,将执行删除操作.新的慢查询日志会直接覆盖旧的查询日志,不需要再手动删除.

数据库管理员也可以手工删除慢查询日志,删除之后需要重新启动MySQL服务.

注意:通用查询日志和慢查询日志都是使用这个命令,使用时一定要注意,一旦执行这个命令,通用查询日志和慢查询日志都只存在新的日志文件中.如果需要备份旧的慢查询日志文件,必须先将旧的日志改名,然后重启MySQL服务或执行mysqladmin命令。

版权声明:
作者:江霁月
链接:https://www.jiangjiyue.com/maintenance/database/525.html
来源:江霁月的私人小屋
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
打赏
< <上一篇
下一篇>>
文章目录
关闭
目 录