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
。參考來源: