在Linux系統中,MariaDB的日志管理主要包括以下幾個方面:
錯誤日志記錄了MariaDB服務器啟動、運行和關閉過程中的錯誤信息。
查看錯誤日志:
sudo tail -f /var/log/mysql/error.log
或者使用journalctl
命令(如果使用systemd):
sudo journalctl -u mariadb.service -f
配置錯誤日志:
編輯/etc/my.cnf
或/etc/mysql/my.cnf
文件,找到[mysqld]
部分,設置以下參數:
[mysqld]
log_error = /var/log/mysql/error.log
查詢日志記錄了所有客戶端與服務器之間的通信,包括SQL語句。
啟用查詢日志:
在my.cnf
中添加:
[mysqld]
general_log = 1
general_log_file = /var/log/mysql/query.log
禁用查詢日志:
將general_log
設置為0。
慢查詢日志記錄了執行時間超過指定閾值的SQL語句。
啟用慢查詢日志:
在my.cnf
中添加:
[mysqld]
slow_query_log = 1
slow_query_log_file = /var/log/mysql/slow-query.log
long_query_time = 2 # 設置慢查詢的時間閾值(秒)
log_queries_not_using_indexes = 1 # 記錄未使用索引的查詢
禁用慢查詢日志:
將slow_query_log
設置為0。
二進制日志記錄了對數據庫執行的所有更改操作,用于數據復制、備份和恢復。
啟用二進制日志:
在my.cnf
中添加:
[mysqld]
log_bin = /var/log/mysql/mysql-bin.log
server_id = 1 # 唯一標識符,用于主從復制
expire_logs_days = 10 # 日志保留天數
禁用二進制日志:
將log_bin
注釋掉或刪除。
中繼日志用于從服務器接收主服務器的二進制日志,并將其應用到本地數據庫。
my.cnf
中添加:[mysqld]
relay_log = /var/log/mysql/mysql-relay-bin.log
relay_log_recovery = 1 # 啟用中繼日志恢復
定期清理舊的日志文件以避免磁盤空間不足。
手動清理:
sudo rm /var/log/mysql/*.log
自動清理:
使用logrotate
工具來自動管理日志文件的輪轉和清理。編輯/etc/logrotate.d/mysql
文件:
/var/log/mysql/*.log {
daily
missingok
rotate 7
compress
notifempty
create 640 root adm
}
sudo systemctl restart mariadb
通過以上步驟,你可以有效地管理和維護MariaDB的日志,確保數據庫的正常運行和故障排查。