在Linux系統中,MySQL的日志管理主要包括以下幾個方面:
二進制日志(Binary Log):
二進制日志記錄了數據庫的所有更改操作,如插入、更新和刪除。它主要用于數據恢復、主從復制和審計。要管理二進制日志,你需要編輯MySQL配置文件(通常是/etc/my.cnf或/etc/mysql/my.cnf),并設置以下參數:
log-bin = /var/log/mysql/mysql-bin.log
expire_logs_days = 10
max_binlog_size = 100M
binlog_format = MIXED
這里,log-bin設置了二進制日志文件的路徑,expire_logs_days設置了日志文件的過期時間,max_binlog_size設置了單個日志文件的最大大小,binlog_format設置了日志格式。
重啟MySQL服務后,新的設置將生效。要手動清除舊的二進制日志,可以使用PURGE BINARY LOGS命令,例如:
PURGE BINARY LOGS TO 'mysql-bin.010';
PURGE BINARY LOGS BEFORE '2021-06-01 00:00:00';
錯誤日志(Error Log): 錯誤日志記錄了MySQL服務器的啟動、運行和關閉過程中的信息,以及錯誤和警告。要管理錯誤日志,你需要編輯MySQL配置文件,并設置以下參數:
log_error = /var/log/mysql/error.log
log_warnings = 2
這里,log_error設置了錯誤日志文件的路徑,log_warnings設置了警告信息的級別。
重啟MySQL服務后,新的設置將生效。要手動清除舊的錯誤日志,可以使用mysqladmin flush-logs命令或SET GLOBAL expire_logs_days = 0;命令。
慢查詢日志(Slow Query Log): 慢查詢日志記錄了執行時間超過指定閾值的SQL語句。要管理慢查詢日志,你需要編輯MySQL配置文件,并設置以下參數:
slow_query_log = 1
long_query_time = 2
slow_query_log_file = /var/log/mysql/mysql-slow.log
這里,slow_query_log設置了是否啟用慢查詢日志,long_query_time設置了慢查詢的時間閾值(單位:秒),slow_query_log_file設置了慢查詢日志文件的路徑。
重啟MySQL服務后,新的設置將生效。要手動清除舊的慢查詢日志,可以使用mysqladmin flush-logs命令或SET GLOBAL expire_logs_days = 0;命令。
查詢日志(General Query Log): 查詢日志記錄了MySQL服務器接收到的所有SQL語句。查詢日志通常用于調試和分析。要管理查詢日志,你需要編輯MySQL配置文件,并設置以下參數:
general_log = 1
general_log_file = /var/log/mysql/mysql.log
這里,general_log設置了是否啟用查詢日志,general_log_file設置了查詢日志文件的路徑。
重啟MySQL服務后,新的設置將生效。要手動清除舊的查詢日志,可以使用mysqladmin flush-logs命令或SET GLOBAL expire_logs_days = 0;命令。
注意:在修改配置文件和執行相關命令時,請確保你有足夠的權限。在生產環境中,建議定期備份日志文件以防止數據丟失。