mysql查看历史执行语句(general log)

开启日志模式

说明:

开启 general log 将所有到达MySQL Server的SQL语句记录下来。

一般不会开启开功能,因为log的量会非常庞大。但个别情况下可能会临时的开一会儿general log以供排障使用。 

1、临时开启设置,重启失效

SET GLOBAL log_output = 'TABLE';SET GLOBAL general_log = 'ON'; //日志开启
SET GLOBAL log_output = 'TABLE'; SET GLOBAL general_log = 'OFF'; //日志关闭
show variables like 'general_log'; //查看是否开启
show variables like 'general_log_file'; -- 看看日志文件保存位置
set global general_log_file='tmp/general.lg'; -- 设置日志文件保存位置
show variables like 'log_output'; -- 看看日志输出类型 table或file
set global log_output='table'; -- 设置输出类型为 table
set global log_output='file'; -- 设置输出类型为file
说明:
log_output=’FILE’ 表示将日志存入文件,默认值是FILE  
log_output=’TABLE’表示将日志存入数据库,这样日志信息就会被写入到mysql.slow_log表中.
mysql数据库支持同时两种日志存储方式,配置的时候以逗号隔开即可,如:log_output=‘FILE,TABLE‘.日志记录到系统专用日志表中,要比记录到文件耗费更多的系统资源,因此对于需要启用慢查日志,又需要比够获得更高的系统性能,那么建议优先记录到文件.

要永久生效,则需要修改需要在my.cnf的【mysqld】中添加:general_log = 1

2、查询

SELECT * from mysql.general_log ORDER BY event_time DESC;

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

truncate table mysql.general_log;

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


mysql查看历史执行语句(general log)
https://www.hechunyu.com/archives/mysqlcha-kan-li-shi-zhi-xing-yu-ju-general-log
作者
chunyu
发布于
2022年07月30日
许可协议