MySQL默认不能实时查看执行的SQL语句,因为这会消耗一定的资源。
要开启这个功能,稍微配置一下,打开这个LOG记录就可以了。
一、查看是否已经开启sql语句日志记录
mysql> show variables like "general_log%";
这里general_log值为OFF,没有开启
二、开启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>select @@log_timestamps;
重设系统时间参数
mysql>set global log_timestamps=SYSTEM;
再次查看日志,这是我上午10:45执行的update语句生成的日志
修改成功,这里设置时间在mysql服务重启后失效,修改配置文件永久生效
my.cnf配置文件添加下面一行:
log_timestamps = SYSTEM
到这里SQL语句日志记录就配置好了,数据库出现数据问题,就可以通过日志慢慢分析了,不到迫不得已还是不要开启SQL日志记录为好,太耗性能,太占硬盘了。
关于mysql日志记录还有个重要的慢查询日志记录,这里下节再去摸索