一、日志类型与配置
- 错误日志:记录启动、运行错误,配置项
log_error指定路径,如/var/log/mysql/error.log。 - 查询日志:
- 通用查询日志:记录所有SQL语句,
general_log=1启用,log_output可选FILE或TABLE。 - 慢查询日志:记录超时查询(
long_query_time设置阈值,如2秒),log_queries_not_using_indexes可记录未用索引的查询。
- 通用查询日志:记录所有SQL语句,
- 二进制日志:记录数据变更,用于复制和恢复,
log_bin指定路径,binlog_format可选ROW/STATEMENT/MIXED。
二、日志轮转与清理
- 使用logrotate工具:
- 创建配置文件
/etc/logrotate.d/mariadb,设置每日轮转、保留7天、压缩旧日志。 - 示例配置:
/var/log/mysql/*.log { daily rotate 7 compress missingok create 640 mysql mysql postrotate mysqladmin flush-logs endscript }
- 创建配置文件
- 手动清理:通过
find命令删除超期日志,如find /var/log/mysql/ -name "*.log" -mtime +30 -exec rm {} \;。
三、日志查看与分析
- 实时查看:
tail -f /var/log/mysql/xxx.log。 - 搜索关键字:
grep 'error' /var/log/mysql/error.log。 - 慢查询分析:
mysqldumpslow或pt-query-digest工具分析慢查询日志。 - 二进制日志查看:
mysqlbinlog查看具体变更,支持按时间范围过滤。
四、高级管理技巧
- 日志审计:安装审计插件(如
server_audit),记录用户操作。 - 监控集成:结合Prometheus、Grafana等工具监控日志异常。