平时开发中总会遇到各种sql问题,一般代码中都不会看到真实的sql,所以我们就有必要开启sql记录

1 开启日志跟踪

SET GLOBAL general_log = ON;


开启之后可以查看系统参数是否已经修改成功:

SHOW VARIABLES LIKE 'general_log%';


2 跟踪日志保存位置

跟踪日志可以有两种方式保存:
(1) 保存到文件
默认情况下是保存到文件,如果不是,则可以执行以下sql语句进行修改:

SET GLOBAL log_output = 'file';


执行以下命令查看修改结果:

SHOW VARIABLES LIKE 'general_log%';


返回结果中general_log_file的值即为保存的文件路径。如果是linux系统,执行tail -100f 文件名 可以实时查看sql的执行情况

(2) 保存到表

SET GLOBAL log_output = 'table';


sql的执行情况会记录在表mysql.general_log中,可以执行以下语句查看:

SELECT * FROM mysql.general_log ORDER BY event_time DESC LIMIT 100;


3 关闭跟踪

跟踪会消耗资源,问题定位完之后一定要关闭跟踪,执行以下sql关闭跟踪:

SET GLOBAL general_log = OFF;