在Ubuntu系統中管理MySQL日志涉及多個方面,包括配置日志記錄、查看日志文件、清理日志文件以及使用日志管理工具。以下是詳細的操作步驟:
編輯MySQL配置文件:
/etc/mysql/my.cnf
或 /etc/my.cnf
。[mysqld]
log_error = /var/log/mysql/error.log
[mysqld]
general_log = 1
general_log_file = /var/log/mysql/general.log
[mysqld]
slow_query_log = 1
long_query_time = 2
slow_query_log_file = /var/log/mysql/slow-queries.log
[mysqld]
log_bin = /var/log/mysql/mysql-bin
重啟MySQL服務:
sudo systemctl restart mysql
查看錯誤日志:
sudo tail -f /var/log/mysql/error.log
查看查詢日志:
sudo tail -f /var/log/mysql/general.log
查看慢查詢日志:
sudo tail -f /var/log/mysql/slow-queries.log
查看二進制日志:
sudo mysqlbinlog /var/log/mysql/mysql-bin.000001
手動清理日志文件:
sudo systemctl stop mysql
sudo rm /var/log/mysql/*.log
sudo systemctl start mysql
配置自動清理日志:
expire_logs_days
參數來指定日志自動清理的時間間隔:[mysqld]
expire_logs_days = 7
sudo systemctl restart mysql
Logrotate:
sudo apt-get install logrotate
sudo nano /etc/logrotate.d/mysql
添加以下內容:/var/log/mysql/*.log {
daily
rotate 7
missingok
notifempty
compress
delaycompress
create 0640 mysql mysql
sharedscripts
postrotate
/bin/kill -HUP $(cat /var/run/mysqld.pid)
endscript
}
sudo crontab -e
添加以下內容:0 1 * * * /usr/sbin/logrotate /etc/logrotate.conf
Rsyslog:
sudo apt-get install rsyslog
/etc/rsyslog.conf
和 /etc/rsyslog.d/
目錄下的文件)。Systemd journal:
journalctl --since "2021-01-01" --until "2023-04-01"
通過以上步驟,你可以在Ubuntu系統中有效地管理MySQL日志,確保系統的穩定運行和數據的安全性。