开启mysql慢查询日志需修改配置文件并设置slow_query_log=ON、指定slow_query_log_file路径、long_query_time阈值及log_queries_not_using_indexes=ON,创建日志目录并授权后重启服务或动态生效参数,最后通过SHOW varIABLES验证配置并测试日志记录。

MySQL 慢查询日志是诊断数据库性能问题的重要工具,它会记录执行时间超过指定阈值的 SQL 语句。在 MySQL 安装完成后,开启和配置慢查询日志需要修改配置文件并重启服务(或动态生效部分参数)。以下是具体操作步骤。
1. 确认 MySQL 配置文件位置
MySQL 的主配置文件通常是 my.cnf 或 my.ini,常见路径包括:
- /etc/my.cnf(linux 系统)
- /etc/mysql/my.cnf
- /usr/local/mysql/etc/my.cnf
- windows 下可能是 C:ProgramdataMySQLMySQL Server x.xmy.ini
可通过以下命令查看实际加载的配置文件:
mysql –help | grep “default options” -A 1
2. 编辑配置文件启用慢查询日志
打开配置文件,在 [mysqld] 段落下添加或修改以下参数:
[mysqld]
slow_query_log = ON
slow_query_log_file = /var/log/mysql/slow.log
long_query_time = 2
log_queries_not_using_indexes = ON
各参数说明:
- slow_query_log = ON:启用慢查询日志
- slow_query_log_file:指定日志文件路径,确保目录存在且 MySQL 用户有写权限
- long_query_time:设置慢查询阈值(单位:秒),例如 2 表示超过 2 秒的查询会被记录
- log_queries_not_using_indexes = ON:记录未使用索引的查询,有助于发现潜在性能问题
3. 创建日志目录并授权(Linux 示例)
如果日志路径不存在,需手动创建并赋权:
sudo mkdir -p /var/log/mysql
sudo chown mysql:mysql /var/log/mysql
4. 重启 MySQL 服务或动态生效
某些参数可以动态设置,无需重启:
SET GLOBAL slow_query_log = ‘ON’;
SET GLOBAL slow_query_log_file = ‘/var/log/mysql/slow.log’;
SET GLOBAL long_query_time = 2;
SET GLOBAL log_queries_not_using_indexes = ‘ON’;
但为保证永久生效,仍建议在配置文件中设置。若修改了配置文件,需重启服务:
sudo systemctl restart mysql
5. 验证慢查询日志是否生效
登录 MySQL 执行以下命令检查状态:
SHOW VARIABLES LIKE ‘slow_query_log’;
SHOW VARIABLES LIKE ‘slow_query_log_file’;
SHOW VARIABLES LIKE ‘long_query_time’;
确认输出值已正确设置。可手动执行一条耗时较长的查询(如 SLEEP(3))测试日志记录:
select SLEEP(3);
然后查看日志文件内容:
tail -f /var/log/mysql/slow.log 基本上就这些。只要配置正确,慢查询日志就能帮助你定位执行效率低下的 SQL 语句,便于后续优化。