查看MySQL数据库的执行记录日志
SQL语句的执行记录日志
方法1
可以使用processlist查看SQL执行语句,但是有个弊端,就是只能查看正在执行的sql语句,无法查看历史执行的语句。
use information_schema;
show processlist;
或者
select * from information_schema.
PROCESSLISTwhere info is not null;
方法2:开启数据库的日志模式
通过日志查看历史执行记录
- 查看当前配置
show variables like '%log_output%';
show variables like '%general_log%';
- 开启&关闭日志模式(可选择输出到表或文件中):
sql
SET GLOBAL log_output = 'FILE'; SET GLOBAL general_log = 'ON'; //日志开启(日志输出到文件)
SET GLOBAL log_output = 'FILE'; SET GLOBAL general_log = 'OFF'; //日志关闭
或者
sql
SET GLOBAL log_output = 'TABLE'; SET GLOBAL general_log = 'ON'; //日志开启(日志输出到表:mysql.general_log)
SET GLOBAL log_output = 'TABLE'; SET GLOBAL general_log = 'OFF'; //日志关闭
- 查看日志文件中的执行记录:
#tail -f /var/log/mariadb/mariadb.log
表查询执行记录:
sql
SELECT * from mysql.general_log ORDER BY event_time DESC;
- 清空表
truncate table mysql.general_log; //该表仅支持truncate不支持delete