MySQL默认不能实时查看执行的SQL语句,因为这会消耗一定的资源。

要开启这个功能,稍微配置一下,打开这个LOG记录就可以了。

一、查看是否已经开启sql语句日志记录

mysql> show variables like "general_log%";

这里general_log值为OFF,没有开启

mysql配置执行的sql语句日志

 二、开启sql语句日志记录

1、临时开启

mysql> set global general_log = 'ON';

mysql> set global general_log_file = '/var/log/mysql/general_log.log';#可以不设置日志路径,默认日志路径

临时开启在mysql服务重启后失效

2、永久开启

找到mysql配置文件(/etc/my.cnf,我这里mysql版本是8.0.18,版本不一样,有可能配置文件目录不一样),添加这两行,重启mysql后生效

general_log = 1

general_log_file = /var/log/mysql/general_sql.log

三、日志文件时间跟系统时间对不上

mysql配置执行的sql语句日志

 查看系统时间参数

mysql>select @@log_timestamps;

mysql配置执行的sql语句日志

重设系统时间参数

mysql>set global log_timestamps=SYSTEM;

mysql配置执行的sql语句日志

再次查看日志,这是我上午10:45执行的update语句生成的日志

 mysql配置执行的sql语句日志

修改成功,这里设置时间在mysql服务重启后失效,修改配置文件永久生效

my.cnf配置文件添加下面一行:

log_timestamps = SYSTEM

到这里SQL语句日志记录就配置好了,数据库出现数据问题,就可以通过日志慢慢分析了,不到迫不得已还是不要开启SQL日志记录为好,太耗性能,太占硬盘了。

 

关于mysql日志记录还有个重要的慢查询日志记录,这里下节再去摸索

相关文章: