温馨提示×

centos下mysql日志管理技巧

小樊
57
2025-08-20 14:40:44
栏目: 云计算

一、日志类型与配置

  • 错误日志:记录启动、运行错误,无需手动启用,配置路径: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
  • 日志归档:定期将旧日志压缩备份至其他目录,避免磁盘占满。

0