1.概要说明
mysql8默认未开启sql记录历史日志。
2.配置开启general_log
2.1.查看配置
general_log
:是否开启sql日志。默认为OFFlog_output
:日志输出位置:FILE
:输出到文件。默认值TABLE
:输出到表。mysql.general_log
show variables like 'general_log%';
show variables like 'log_output';
2.2.修改配置
2.2.1.开启sql历史日志
SET GLOBAL general_log = 'ON'; -- 非持久化
SET PERSIST general_log = 'ON'; -- 持久化
2.2.2.设置sql历史日志输出位置
2.2.2.1. 【不推荐】输出到文件
-- 不推荐
SET GLOBAL log_output = 'FILE'; -- 非持久化
SET PERSIST log_output = 'FILE'; -- 持久化
2.2.2.2. 【推荐】输出到表
-- 推荐
SET GLOBAL log_output = 'TABLE'; -- 非持久化
SET PERSIST log_output = 'TABLE'; -- 持久化
- 查看sql历史记录(注意字符编码)
select *,convert(argument using utf8mb4) from mysql.general_log order by event_time desc limit 1000;