Administrator
Published on 2023-11-17 / 36 Visits
0
0

mysql5.7开启日志

开启通用日志(general log)

  1. vi /etc/my.cnf
  2. 在[mysqld]部分增加以下内容
general_log=1
general_log_file=/var/log/mysql/mysql.log
  1. 创建/var/log/mysql/mysql.log文件
  2. 确保MySQL进程具有写入权限,执行以下命令
sudo touch /var/log/mysql/mysql.log
sudo chown mysql:mysql /var/log/mysql/mysql.log
sudo chmod 644 /var/log/mysql/mysql.log

mysql程序的运行是mysql账号,如果没权限,log内容就是空的。

  1. 重启服务
systemctl restart mysqld.service
  1. 上面生成的日志不会自动清理,我们需要实现自动清理功能避免日志文件过大
  • 借助系统的crond工具,执行定时清理脚本
  • 使用日志轮转工具logrotate,详情看日志轮旋

经过测试,使用logrotate会创建新的日志文件,这会导致mysql无法写入日志,得重启mysql才行,所有还是用crond执行定时清理脚本吧,如有需求可以在清理前,将日志文件拷贝一份出来再清理。

开启错误日志(error log)

在[mysqld]部分增加以下内容并手动创建对应文件

log-error=/var/log/mysql/mysql-error.log

其他步骤跟开启通用日志步骤一样。


Comment