温馨提示×

Linux MariaDB的日志管理方法

小樊
74
2025-08-03 09:21:59
栏目: 云计算

在Linux系统中,MariaDB的日志管理主要包括以下几个方面:

日志类型

  • 错误日志(Error Log):记录服务器启动、运行和关闭过程中的错误信息。
  • 查询日志(General Query Log):记录所有客户端连接和执行的SQL语句。
  • 慢查询日志(Slow Query Log):记录执行时间超过设定阈值的SQL语句。
  • 二进制日志(Binary Log):记录对数据库执行的所有更改操作,用于数据复制和恢复。
  • 中继日志(Relay Log):在主从复制中,从服务器用来存储从主服务器接收到的二进制日志。
  • 审计日志(Audit Log):记录服务器活动,用于安全审计。

日志配置

  • 错误日志配置:在 /etc/mysql/mariadb.conf.d/50-server.cnf 中配置:
    [mysqld]
    log_error = /var/log/mysql/mariadb-error.log
    log_error_verbosity = 3
    
  • 通用查询日志配置:临时启用:
    SET GLOBAL general_log = 'ON';
    SET GLOBAL general_log_file = '/var/log/mysql/mariadb-query.log';
    
    永久配置( /etc/mysql/mariadb.conf.d/50-server.cnf ):
    [mysqld]
    general_log = 1
    general_log_file = /var/log/mysql/mariadb-query.log
    general_log_output = FILE
    
  • 慢查询日志配置
    SET GLOBAL slow_query_log = 'ON';
    SET GLOBAL long_query_time = 2;
    SET GLOBAL slow_query_log_file = '/var/log/mysql/mariadb-slow.log';
    SET GLOBAL log_queries_not_using_indexes = 'ON';
    
  • 二进制日志配置
    SET GLOBAL log_bin = 'ON';
    SET GLOBAL binlog_format = 'ROW';
    SET GLOBAL expire_logs_days = 7;
    

查看和管理日志

  • 查看错误日志
    tail -f /var/log/mysql/mariadb-error.log
    
  • 查看查询日志
    tail -f /var/log/mysql/mariadb-query.log
    
  • 查看慢查询日志
    tail -f /var/log/mysql/mariadb-slow.log
    
  • 查看二进制日志
    mysqlbinlog /var/log/mysql/mariadb-bin.log
    

日志轮转

为了避免日志文件过大,可以使用 logrotate 工具进行日志轮转。创建一个 logrotate 配置文件,例如 /etc/logrotate.d/mariadb

/var/log/mysql/*.log {
    daily
    rotate 7
    missingok
    compress
    delaycompress
    notifempty
    create 640 mysql mysql
    postrotate
        if test -x /usr/bin/mysqladmin && \
           /usr/bin/mysqladmin ping &/dev/null; then
            /usr/bin/mysqladmin flush-logs
        fi
    endscript
}

这个配置文件会每天轮转日志文件,保留最近7天的日志,并对旧日志进行压缩。

清理日志

定期清理日志文件可以释放磁盘空间。可以使用 logrotate 自动完成,或者手动删除旧日志文件:

# 删除超过30天的日志文件
find /var/log/mysql/ -type f -name "*.log" -mtime +30 -exec rm {} \;

监控日志

可以使用监控工具(如 Prometheus、Grafana)来监控 MariaDB 的日志,及时发现和处理问题。

通过以上步骤,你可以有效地管理和维护 MariaDB 的日志,确保数据库的稳定运行和数据的安全性。

0