以下是Linux下MySQL日志管理的最佳实践:
-
日志类型与配置
- 错误日志:记录服务器运行错误,默认路径
/var/log/mysql/error.log,可通过log_error参数自定义。 - 慢查询日志:记录执行时间超阈值(如1秒)的SQL,需开启
slow_query_log并设置long_query_time,用于性能优化。 - 二进制日志:记录数据变更操作,用于恢复和复制,通过
log_bin参数配置路径,建议开启expire_logs_days自动清理过期日志。
- 错误日志:记录服务器运行错误,默认路径
-
日志轮转与清理
- 使用
logrotate工具按天/大小分割日志,保留最近7-30天文件并压缩,避免磁盘占满。 - 示例配置:
/var/log/mysql/*.log { daily rotate 7 compress missingok postrotate /etc/init.d/mysql reload } - 定期清理过期日志,可通过
PURGE BINARY LOGS命令或脚本实现。
- 使用
-
性能与安全优化
- 按需开启日志:生产环境谨慎开启通用查询日志(
general_log),避免影响性能。 - 权限控制:限制日志文件访问权限,仅授权用户可查看。
- 监控告警:通过
du命令或工具监控日志大小,设置阈值告警。
- 按需开启日志:生产环境谨慎开启通用查询日志(
-
分析与工具使用
- 慢查询分析:用
pt-query-digest或mysqldumpslow工具定位低效SQL,优化索引或语句结构。 - 二进制日志分析:通过
mysqlbinlog工具解析,用于故障恢复或审计。
- 慢查询分析:用
参考来源: