查询日志开启后可记录所有 SQL 语句,便于排查问题。1. 执行 SHOW VARIABLES LIKE ‘general_log’ 确认是否启用,ON 表示已开;2. 查看 general_log_file 获取日志路径;3. 临时开启用 SET GLOBAL general_log = ‘ON’,永久开启需在 my.cnf 添加 general_log=ON 及日志路径;4. 用 tail、less 等命令查看日志内容;5. 注意日志影响性能,生产环境应关闭并定期轮转。

MySQL 查询日志记录了所有到达数据库的 SQL 语句,开启后有助于排查问题或分析应用行为。要查看查询日志,首先需要确认日志是否已启用,并知道日志文件的存储位置。
1. 确认查询日志是否开启
登录 MySQL 后执行以下命令查看当前查询日志状态:
SHOW VARIABLES LIKE ‘general_log’;
如果返回值为 ON,表示已开启;若为 OFF,则需手动开启。
同时查看日志文件路径:
SHOW VARIABLES LIKE ‘general_log_file’;
该命令会显示查询日志的具体保存位置,例如:/var/lib/mysql/hostname.log。
2. 开启查询日志(如未开启)
临时开启(重启后失效):
SET GLOBAL general_log = ‘ON’;
这会立即生效,但 MySQL 服务重启后设置将恢复默认。
如需永久开启,需修改 MySQL 配置文件 (通常是 my.cnf 或 my.ini):
- 找到 [mysqld] 段落
- 添加或修改以下两行:
general_log = ON
general_log_file = /var/log/mysql/query.log
注意:确保指定目录存在且 MySQL 进程有写入权限。
3. 查看查询日志内容
使用系统命令查看日志文件内容,例如:
tail -f /var/lib/mysql/hostname.log
或使用 less、cat 等命令浏览:
less /var/lib/mysql/hostname.log
日志中会逐条显示客户端发送的每一条 SQL 语句,包括 SELECT、INSERT、UPDATE 等。
4. 注意事项与性能影响
查询日志会对性能产生一定影响,尤其在高并发场景下,日志写入可能成为瓶颈。
- 仅在调试或分析阶段开启
- 生产环境建议关闭,避免磁盘快速写满
- 定期清理或轮转日志文件
基本上就这些。开启后能清楚看到所有请求的 SQL,对排查问题很有帮助,但记得用完及时关闭。






























