正在执行

使用processlist,但是有个弊端,就是只能查看正在执行的sql语句,对应历史记录,查看不到。好处是不用设置,不会保存。

1
2
use information_schema;
show processlist;

或者:

1
select * from information_schema.`PROCESSLIST` where info is not null;

日志

1、设置

1
2
3
SET GLOBAL log_output = 'TABLE';SET GLOBAL general_log = 'ON'; //日志开启

SET GLOBAL log_output = 'TABLE'; SET GLOBAL general_log = 'OFF'; //日志关闭

2、查询

1
SELECT * from mysql.general_log ORDER BY event_time DESC;

3、清空表(delete对于这个表,不允许使用,只能用truncate)

1
truncate table mysql.general_log;

在查询sql语句之后,在对应的 C:\Program Files\MySQL\MySQL Server 5.7\data 文件夹下面有对应的log记录

ps:在查询到所需要的记录之后,应尽快关闭日志模式,占用磁盘空间比较大