Debian下MariaDB日志管理主要涉及配置、查看、轮转及监控,操作如下:
通过修改配置文件/etc/mysql/mariadb.conf.d/50-server.cnf
设置日志路径及格式:
[mysqld]
log_error = /var/log/mysql/error.log
general_log = 1
general_log_file = /var/log/mysql/general.log
log_output = FILE # 设为FILE存文件,TABLE存数据库(默认)
slow_query_log = 1
slow_query_log_file = /var/log/mysql/slow.log
long_query_time = 2 # 阈值(秒)
log_queries_not_using_indexes = 1 # 记录未使用索引的查询
log_bin = /var/log/mysql/mysql-bin.log
binlog_format = ROW # 推荐ROW格式(数据更完整)
expire_logs_days = 7 # 自动过期天数
# 实时查看错误日志
tail -f /var/log/mysql/error.log
# 查看慢查询日志(按执行时间排序)
mysqldumpslow -s t /var/log/mysql/slow.log
# 查看二进制日志内容(指定时间范围)
mysqlbinlog --start-datetime="2025-01-01 00:00:00" /var/log/mysql/mysql-bin.000001
gnome-system-log
(需安装)或Loggly
等工具查看/var/log/mysql/
目录下的日志文件。/etc/logrotate.d/mariadb
文件,内容如下:/var/log/mysql/*.log {
daily
rotate 7
compress
missingok
notifempty
create 640 mysql mysql
postrotate
mysqladmin flush-logs # 轮转后刷新日志
endscript
}
执行logrotate -vf /etc/logrotate.d/mariadb
测试配置。find /var/log/mysql/ -type f -name "*.log" -mtime +30 -exec rm {} \;
journalctl
查看系统级日志(需MariaDB以systemd服务运行):journalctl -u mariadb --since "2025-01-01" --until "2025-01-31"
pt-query-digest
(Percona工具)或mysqldumpslow
分析慢查询日志,定位性能瓶颈。general_log=0
),仅开启错误日志和慢查询日志以减少磁盘占用。systemctl restart mariadb
。参考来源: