mysql查看执行历史sql日志

241 阅读1分钟

背景

我们在现网的情况经常会查看程序中执行的sql是不是正确或者参数是否正确,然后复制处理到mysql 中再次执行,如果开启程序的sql打印功能,可能需要加入日志的输出和sql的打印级别等,直接影响效率 本文主要通过修改mysql的配置来跟踪sql

方案

查看MySQL的配置

show variables like '%log_out%';

+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| log_output    | TABLE |
+---------------+-------+

mysql> show variables like '%general_log%';
+------------------+------------------------------------+
| Variable_name    | Value                              |
+------------------+------------------------------------+
| general_log      | OFF                                |
| general_log_file | /home/mysql/localhost.log |
+------------------+------------------------------------+

开启mysql记录功能

SET GLOBAL log_output = 'TABLE';  
SET GLOBAL general_log = 'ON';

查看sql日志

SELECT * from mysql.general_log ORDER BY  event_time DESC;

image.png

发现argument为blob数据类型,无法查看

blob转换为字符串

SELECT CAST(argument AS CHAR)  as text from mysql.general_log

1693880028017.jpg

总结

每天学习一点,进步一点