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 软件实时查看。