环境

centos7.9,mysql5.7


记录执行sql的日志

MySQL有很多种方式来记录执行的SQL语句,下面是一些方法:

mysql执行sql 记录日志_mysql

默认的配置文件为/etc/my.cnf,window自行查找my.ini配置的路径

  • 记录查询日志
[mysqld]
general_log = 1
general_log_file = /var/log/mysql/mysql.log

这个配置的功能是记录了所有客户端执行的语句,包括对数据的更改和SELECT查询

  • 记录慢sql

顾名思义,就是记录执行时间超过配置内阈值时间的sql,下面为执行时间超2秒计入日志

[mysqld]
slow_query_log = 1
slow_query_log_file = /var/log/mysql/mysql-slow.log
long_query_time = 2
  • bin日志

也就是可以拿来恢复数据及做主从同步的日志

[mysqld]
log_bin = /var/log/mysql/mysql-bin.log
expire_logs_days = 7
max_binlog_size = 100M

expire_logs_days用于设置日志文件的过期天数,max_binlog_size用于设置单个日志文件的最大大小。

  • 错误日志

不配置则默认会记录到/var/log/mysql/下

[mysqld]
log-error=/var/log/mysql/mysqld-error.log


以上所有修改,都需要重启mysql服务,开启日志后,日常的维护需要经常关注空间的使用率,以及定期可根据慢sql日志进行sql优化