首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL 日誌配置全指南:錯誤、查詢、二進制、慢查詢日誌啟用與管理

     編輯:MySQL 資料庫相關知識

四大核心日誌類型

日誌用途預設狀態關鍵參數
錯誤日誌記錄啟動/關閉/異常崩潰資訊啟用log_error
查詢日誌記錄所有客戶端連線與 SQL 語句關閉general_log, general_log_file
二進制日誌記錄資料變更(DDL/DML),用於主從複寫、時間點恢復關閉log_bin, binlog_format
慢查詢日誌記錄執行時間超過閾值的 SQL關閉slow_query_log, long_query_time

配置檔啟用範例(my.cnf / my.ini)

[mysqld]
# 錯誤日誌(通常預設已開)
log_error = mysql.err

# 一般查詢日誌
general_log = 1
general_log_file = mysql.log

# 二進制日誌(主從/備份必開)
log_bin = mysql-bin
binlog_format = ROW
expire_logs_days = 7
max_binlog_size = 100M

# 慢查詢日誌
slow_query_log = 1
slow_query_log_file = mysql-slow.log
long_query_time = 2
log_queries_not_using_indexes = 1

動態開啟/關閉(無需重啟)

SET GLOBAL general_log = ON;
SET GLOBAL slow_query_log = ON;
SET GLOBAL long_query_time = 1;

注意:動態修改重啟後失效,需同步寫入配置檔。

日誌檔案管理與分析

1. 二進制日誌清理

-- 刪除指定檔案前的所有 binlog
PURGE BINARY LOGS TO 'mysql-bin.000123';
-- 或按時間
PURGE BINARY LOGS BEFORE '2024-01-01 00:00:00';

配合 expire_logs_days 自動過期。

2. 慢查詢分析工具

  • mysqldumpslow:官方內建,聚合統計 Top N 慢查詢。
  • pt-query-digest (Percona Toolkit):功能更強,支援報表、圖表、異常偵測。

3. 查詢日誌慎用

⚠️ 生產環境不建議長期開啟 general_log:會記錄所有 SQL(含密碼)、產生海量 I/O、嚴重影響效能。僅在排查連線問題時短暫開啟。

日誌儲存路徑與權限

  • 預設在 datadir 下,建議掛載獨立磁碟/分區,避免佔滿系統盤。
  • 檔案擁有者需為 mysql:mysql,權限 640,防止洩露敏感 SQL。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved