Mysql记录查询SQL日志

2024/7/15·1 views

Mysql设置变量的方法

  • 利用“set GLOBAL|SESSION 需要设置的variables”语句修改;
  • 利用“set @用户variables”或者“set @@系统variables”语句修改。

sql日志

sql 复制代码
show variables like '%log_output%'; //查看参数
SHOW VARIABLES LIKE "general_log%";  -- 查看是否开启 普通日志
SHOW VARIABLES LIKE "%slow_query_log%"; -- 查看是否开启慢日志
SET GLOBAL log_output = 'TABLE';SET GLOBAL general_log = 'ON'; //日志开启
SET GLOBAL log_output = 'TABLE'; SET GLOBAL general_log = 'OFF'; //日志关闭

当前慢文件格式为file ,存储在数据库的数据文件中的hostname.log
可以是table格式,存储在数据库的数据文件中的mysql.general_log

设置通用日志输出为表方式:

sql 复制代码
set global log_output = 'file';

设置通用日志输出为表和文件方式:

sql 复制代码
set global log_output = 'file,table';

可以编辑my.ini文件

复制代码
general_log = 1
general_log_file = /var/log/mysql/general_sql.log

binlog

开启binlog

修改配置文件

复制代码
log-bin=mysql-bin
server-id=1
binlog_format=MIXED
sql 复制代码
show variables like 'log_bin' -- 查看是否开启bin-log
show master status -- 查看当前的日志

查看blnlog

由于binlog以是binary方式存取,不能直接查看,需要用mysql提供的mysqlbinlog工具查看。

删除binlog

  • 用reset master命令删除所有日志,新日志重新从000001开始编号
  • 用purge master logs to 'mysq-bin.******' 命令可以删除指定编号前的所有日志
  • 用purge master logs to before 'YYYY-MM-DD HH24:MI:SS'命令可以删除'YYYY-MM-DD HH24:MI:SS'之前的产生的所有日志
  • 可以在my.cnf中指定--expire_logs_days=#,此参数设置了binlog日志的过期天数
快来和小猫聊天吧~