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 服务器就应该开始记录慢查询了。

相关推荐
呆萌很6 小时前
达梦(DM8)数据库常用SQL
数据库·sql
跟太阳说早安6 小时前
极简数据库SQL
数据库·sql
前端 贾公子6 小时前
第 5 章:Codex 从可运行程序到可交付工具
java·前端·数据库
杨云龙UP6 小时前
MySQL 主从复制管理:暂停、恢复、清理主从关系及命令执行位置
运维·数据库·mysql·主从配置·主从命令·reset replica·清除复制
yzs877 小时前
openGauss branch diff能力解析
数据库·oracle
霂鳯7 小时前
新手勇闯网络安全 | MySQL复习
mysql·安全·web安全
郭小李7 小时前
spring中@Transactional注解对事务的支持
数据库·spring·oracle
运维行者_7 小时前
供应链安全成最大风险源,企业如何构建可控的运维体系?
运维·开发语言·网络·数据库·安全·云计算·流量监控
高铭杰7 小时前
Postgresql源码(160)新的共享内存注册机制,为动态调整shared_buffers打基础
数据库·postgresql
数据库小学妹7 小时前
AI Agent连数据库怎么控权限?只读账号的4个缺口
数据库·人工智能·安全·数据库权限·审计·ai数据库·只读账号