查询日志开启后可记录所有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_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,对排查问题很有帮助,但记得用完及时关闭。










