MySQL 运维或者调试 Bug 时,最有效且直接的方法就是直接查看 SQL 执行日志,如果可以直接显示所有 SQL 的执行信息,基本可以定位到问题。本文接下来会讲解如何实现实时监控 SQL 执行。
查看 Log 功能
首先,查看是否已经开启实时 SQL 记录功能
show varaibles like "general_log%";
general_log 值为 OFF 说明没有开启,ON 则表示已经开启。
打开 Log 功能
一、临时开启
打开 general_log,并指定日志文件路径
set global general_log = 'ON';
set global general_log_file = '/var/log/mysql/general_log.log';
以上设置在 MySQL 重启后会失效,为临时方法。
二、永久开启
可以通过修改 my.ini 配置文件,实现永久开启
general_log = 1
general_log_file = /var/log/mysql/general_log.log
重启 MySQL 后生效。
实时监控 SQL
如果需要实时查看目前执行的 SQL,可以通过 tail 命令
tail -f /var/log/mysql/general_log.log
另外,也可以用 BareTail 软件实时查看。