一、日志类型与配置
- 错误日志:记录启动、运行错误,无需手动启用,配置路径:
log_error=/var/log/mysql/error.log。 - 查询日志:记录所有SQL语句,需手动开启:
general_log=1,路径:general_log_file=/var/log/mysql/query.log。 - 慢查询日志:记录慢SQL(
long_query_time设阈值),路径:slow_query_log_file=/var/log/mysql/slow-query.log。 - 二进制日志:记录数据变更,用于复制和恢复,路径:
log_bin=/var/log/mysql/binlog。
二、日志轮转与清理
-
使用logrotate工具
创建配置文件/etc/logrotate.d/mysql,示例内容:/var/log/mysql/*.log { daily rotate 7 compress missingok notifempty create 0640 mysql mysql postrotate if [ -f /var/run/mysqld/mysqld.pid ]; then kill -USR1 `cat /var/run/mysqld/mysqld.pid` fi endscript }执行
logrotate -f /etc/logrotate.d/mysql手动触发轮转。 -
手动清理
- 删除旧日志文件(需先停止写入):
rm -f /var/log/mysql/*.log(谨慎操作,可能影响服务)。 - 清空二进制日志:
mysqladmin -u root -p flush-logs。
- 删除旧日志文件(需先停止写入):
三、权限与性能优化
- 权限设置:确保日志目录属主为
mysql用户:
chown -R mysql:mysql /var/log/mysql。 - 限制日志大小:
- 二进制日志:
max_binlog_size=100M(配置后重启)。 - 慢查询日志:结合
expire_logs_days设置保留天数。
- 二进制日志:
四、监控与分析
- 实时查看:
tail -f /var/log/mysql/*.log。 - 分析慢查询:
mysqldumpslow /var/log/mysql/slow-query.log。 - 日志归档:定期将旧日志压缩备份至其他目录,避免磁盘占满。