如何通过phpEnv调整MySQL慢查询日志设置?
- 内容介绍
- 文章标签
- 相关推荐
本文共计794个文字,预计阅读时间需要4分钟。
phpphpEnv 是一个 Windows 下的 PHP 集成环境(类似于 XAMPP、WampServer),自带 Apache、PHP 和 MySQL。但请注意:
如何确认 MySQL 是否已启用慢查询日志
直接连进 MySQL 执行:
SHOW VARIABLES LIKE 'slow_query_log';
如果返回 OFF,说明没开;再查路径和阈值:
SHOW VARIABLES LIKE 'slow_query_log_file';<br>SHOW VARIABLES LIKE 'long_query_time';
常见默认值是:long_query_time = 10(秒),太宽松,线上建议设为 2 或 1。
立即学习“PHP免费学习笔记(深入)”;
修改 phpEnv 中 MySQL 的慢日志配置
phpEnv 的 MySQL 配置文件通常在:
phpEnv\MySQL\my.ini
或(取决于安装路径):
phpEnv\MySQL\conf\my.ini
用记事本或 VS Code 打开,找到 [mysqld] 段,在其下方添加或取消注释以下几行:
slow_query_log = ON-
slow_query_log_file = D:/phpEnv/MySQL/logs/slow.log(路径必须是绝对路径,且目录存在) long_query_time = 2-
log_queries_not_using_indexes = OFF(可选,开启后会记录没走索引的查询,日志量大,慎开)
⚠️ 注意:Windows 下路径分隔符用正斜杠 / 或双反斜杠 \,单反斜杠 \ 会被 MySQL 解析为转义字符,导致路径错误。
示例片段:
[mysqld]<br>slow_query_log = ON<br>slow_query_log_file = D:/phpEnv/MySQL/logs/slow.log<br>long_query_time = 2
然后手动创建目录 D:/phpEnv/MySQL/logs/(MySQL 不会自动建),并确保 mysql 进程有写入权限(一般以当前用户运行,所以只要目录可写即可)。
重启 MySQL 服务才生效
phpEnv 界面右下角托盘图标 → 右键 → 「Restart MySQL」
或命令行执行(在 phpEnv 安装目录下):
MySQL\bin\mysqld --defaults-file=MySQL\my.ini --install<br>net stop MySQL<br>net start MySQL
重启后再次执行 SHOW VARIABLES LIKE 'slow_query_log'; 确认返回 ON。
验证慢日志是否真在记录
执行一条人为制造的慢查询(需先建测试表):
SELECT SLEEP(3);
然后检查你指定的 slow_query_log_file 路径下是否有新增内容。正常应看到类似:
# Time: 2026-04-24T21:05:12.123456Z<br># User@Host: root[root] @ localhost [127.0.0.1] Id: 3<br># Query_time: 3.000234 Lock_time: 0.000000 Rows_sent: 1 Rows_examined: 1<br>use test;<br>SELECT SLEEP(3);
注意:Query_time 字段必须 ≥ 你设的 long_query_time 才会被记录。
关键点容易被忽略:MySQL 慢日志只记录查询执行阶段耗时,不包括网络传输、客户端解析、连接建立等时间;而且 long_query_time 是浮点数,单位是秒,设 2 就是 2.0 秒,不是整数秒截断。
本文共计794个文字,预计阅读时间需要4分钟。
phpphpEnv 是一个 Windows 下的 PHP 集成环境(类似于 XAMPP、WampServer),自带 Apache、PHP 和 MySQL。但请注意:
如何确认 MySQL 是否已启用慢查询日志
直接连进 MySQL 执行:
SHOW VARIABLES LIKE 'slow_query_log';
如果返回 OFF,说明没开;再查路径和阈值:
SHOW VARIABLES LIKE 'slow_query_log_file';<br>SHOW VARIABLES LIKE 'long_query_time';
常见默认值是:long_query_time = 10(秒),太宽松,线上建议设为 2 或 1。
立即学习“PHP免费学习笔记(深入)”;
修改 phpEnv 中 MySQL 的慢日志配置
phpEnv 的 MySQL 配置文件通常在:
phpEnv\MySQL\my.ini
或(取决于安装路径):
phpEnv\MySQL\conf\my.ini
用记事本或 VS Code 打开,找到 [mysqld] 段,在其下方添加或取消注释以下几行:
slow_query_log = ON-
slow_query_log_file = D:/phpEnv/MySQL/logs/slow.log(路径必须是绝对路径,且目录存在) long_query_time = 2-
log_queries_not_using_indexes = OFF(可选,开启后会记录没走索引的查询,日志量大,慎开)
⚠️ 注意:Windows 下路径分隔符用正斜杠 / 或双反斜杠 \,单反斜杠 \ 会被 MySQL 解析为转义字符,导致路径错误。
示例片段:
[mysqld]<br>slow_query_log = ON<br>slow_query_log_file = D:/phpEnv/MySQL/logs/slow.log<br>long_query_time = 2
然后手动创建目录 D:/phpEnv/MySQL/logs/(MySQL 不会自动建),并确保 mysql 进程有写入权限(一般以当前用户运行,所以只要目录可写即可)。
重启 MySQL 服务才生效
phpEnv 界面右下角托盘图标 → 右键 → 「Restart MySQL」
或命令行执行(在 phpEnv 安装目录下):
MySQL\bin\mysqld --defaults-file=MySQL\my.ini --install<br>net stop MySQL<br>net start MySQL
重启后再次执行 SHOW VARIABLES LIKE 'slow_query_log'; 确认返回 ON。
验证慢日志是否真在记录
执行一条人为制造的慢查询(需先建测试表):
SELECT SLEEP(3);
然后检查你指定的 slow_query_log_file 路径下是否有新增内容。正常应看到类似:
# Time: 2026-04-24T21:05:12.123456Z<br># User@Host: root[root] @ localhost [127.0.0.1] Id: 3<br># Query_time: 3.000234 Lock_time: 0.000000 Rows_sent: 1 Rows_examined: 1<br>use test;<br>SELECT SLEEP(3);
注意:Query_time 字段必须 ≥ 你设的 long_query_time 才会被记录。
关键点容易被忽略:MySQL 慢日志只记录查询执行阶段耗时,不包括网络传输、客户端解析、连接建立等时间;而且 long_query_time 是浮点数,单位是秒,设 2 就是 2.0 秒,不是整数秒截断。

