当软件业务日志打印不全,无法实际确认软件最终执行SQL语句时,可以通过临时打开Mysql的全局日志开关,辅助定位。
1、查看当前服务器数据库日志相关配置
show variables like 'general_log%';
+------------------+------------------------------+
| Variable_name | Value |
+------------------+------------------------------+
| general_log | ON |
| general_log_file | /var/lib/mysql/localhost.log |
+------------------+------------------------------+
2、临时打开mysql操作日志记录
SET GLOBAL general_log = 'ON';
SET GLOBAL general_log_file = '/var/lib/mysql/localhost.log';
3、执行业务操作,查看操作日志。
方案2、通过打开mysql binlog 解析二进制文件。
缺陷:无法查看查询相关的语句,只能查看更新相关语句。
mysqlbinlog --no-defaults --base64-output=decode-rows -v /var/log/mysql/mysql-bin.000006