/var/log/mysql/error.log。/var/log/mysql/general.log。/var/log/mysql/slow.log。/var/log/mysql/mysql-bin.xxxxxx。修改配置文件
编辑 /etc/mysql/my.cnf,在 [mysqld] 中添加/修改参数:
# 错误日志
log-error=/var/log/mysql/error.log
# 通用查询日志(开启并指定路径)
general_log=1
general_log_file=/var/log/mysql/general.log
# 慢查询日志(开启、设置阈值及路径)
slow_query_log=1
slow_query_log_file=/var/log/mysql/slow.log
long_query_time=2
# 二进制日志(开启、设置路径及大小)
log-bin=mysql-bin
max_binlog_size=100M
expire_logs_days=7 # 自动清理7天前的日志
保存后重启MySQL:sudo systemctl restart mysql。
动态查看配置
# 查看错误日志路径
mysql -u root -p -e "SHOW VARIABLES LIKE 'log_error';"
# 查看通用查询日志状态
mysql -u root -p -e "SHOW VARIABLES LIKE 'general%';"
查看日志
sudo tail -f /var/log/mysql/error.log。sudo less /var/log/mysql/slow.log。sudo grep 'ERROR' /var/log/mysql/error.log。日志轮转
/etc/logrotate.d/mysql,添加以下内容:/var/log/mysql/*.log {
daily
rotate 7
missingok
compress
delaycompress
sharedscripts
postrotate
/bin/kill -HUP $(cat /var/run/mysqld.pid)
endscript
}
系统默认每天执行一次轮转,保留7天日志并压缩。手动清理日志
# 停止MySQL服务
sudo systemctl stop mysql
# 删除日志文件(谨慎操作,建议先备份)
sudo rm /var/log/mysql/*.log
# 重启MySQL
sudo systemctl start mysql
注:优先使用Logrotate自动清理,避免手动操作影响服务。
分析日志
sudo pt-query-digest /var/log/mysql/slow.log(需安装Percona工具包)。mysqlbinlog /var/log/mysql/mysql-bin.000001。mysql:mysql,避免未授权访问。参考来源: