Unbuntu 中如何开启 MySQL 的慢日志

目录

[步骤 1: 找到配置文件](#步骤 1: 找到配置文件)

[步骤 2: 编辑配置文件](#步骤 2: 编辑配置文件)

[步骤 3: 添加慢查询日志设置](#步骤 3: 添加慢查询日志设置)

[步骤 4: 重启 MySQL 服务](#步骤 4: 重启 MySQL 服务)

[步骤 5: 检查慢查询日志](#步骤 5: 检查慢查询日志)

[步骤 6: 验证设置](#步骤 6: 验证设置)

步骤 1: 找到配置文件

首先确认你的 MySQL 配置文件的位置。你可以使用 **grep**命令来搜索相关配置文件的位置,例如:

复制代码
grep -rl "slow_query_log" /etc/mysql/

这将列出所有包含 "slow_query_log" 关键词的配置文件。

如果上述命令没有返回结果,你可以直接编辑 /etc/mysql/mysql.conf.d/mysqld.cnf 或 /etc/mysql/my.cnf。

步骤 2: 编辑配置文件

使用文本编辑器打开配置文件。这里我们以 /etc/mysql/mysql.conf.d/mysqld.cnf 为例:

bash 复制代码
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

步骤 3: 添加慢查询日志设置

在 [mysqld] 部分添加以下行:

bash 复制代码
slow_query_log = 1
slow_query_log_file = /var/log/mysql/mysql-slow.log
long_query_time = 2
log_queries_not_using_indexes = 1
  • slow_query_log = 1 启用慢查询日志功能。
  • slow_query_log_file 设置慢查询日志文件的位置。
  • long_query_time 设置慢查询的阈值(秒)。默认是 10 秒,这里设为 2 秒。
  • log_queries_not_using_indexes = 1 记录不使用索引的查询。

步骤 4: 重启 MySQL 服务

保存并关闭配置文件后,你需要重启 MySQL 服务使更改生效:

bash 复制代码
sudo systemctl restart mysql

步骤 5: 检查慢查询日志

重启服务后,你可以通过查看日志文件来验证慢查询日志是否已经被记录:

bash 复制代码
tail -n 100 /var/log/mysql/mysql-slow.log

这将显示慢查询日志文件中的最后 100 行。

步骤 6: 验证设置

你还可以登录到 MySQL 并执行以下命令来验证慢查询日志设置是否正确:

bash 复制代码
SHOW VARIABLES LIKE 'slow_query_log';
SHOW VARIABLES LIKE 'slow_query_log_file';
SHOW VARIABLES LIKE 'long_query_time';
SHOW VARIABLES LIKE 'log_queries_not_using_indexes';

这将显示慢查询日志的相关设置。

完成以上步骤后,你的 MySQL 服务器就应该开始记录慢查询了。

相关推荐
阿义有问题5 分钟前
MySQL 迁移达梦全流程实战:DTS 七步图解 + 对象名全大写适配(附踩坑清单)
数据库
猫猫不是喵喵.3 小时前
从0到1创建一个微服务项目
java·数据库·微服务·1024程序员节
lsc_blog4 小时前
听到优化风声,先准备能由自己掌控的事
数据库·分布式·中间件·职场和发展·重构
墨痕诉清风4 小时前
SSRF漏洞实战记录+OSS桶命令执行+MCP漏洞
linux·服务器·数据库
Ashe8137 小时前
MySQL 慢日志先别急着加索引:三个指标能拦掉大半误判
数据库
ClouGence7 小时前
最基础的异构数据库 DDL 同步,我们踩过哪些坑?
数据库·mysql·postgresql
羑悻的小杀马特8 小时前
Redis持久化三剑客:RDB二进制快照、AOF文本日志、混合模式如何守护你的数据安全?
数据库·redis·缓存·aof·持久化存储·rdb
小呆爱发呆8 小时前
第三章 MySQL 库表操作
数据库·mysql·adb
时间的拾荒人9 小时前
Redis 进阶实战:渐进式遍历、持久化机制与事务详解
数据库·redis·缓存