開啟適當的日誌對排查故障、效能分析、資料恢復至關重要。本文說明如何在 Windows (my.ini) 啟用四大日誌、控制日誌大小與自動清理,Linux (my.cnf) 同理。
SHOW VARIABLES LIKE 'log_%';

my.ini 啟用日誌 (需在 [mysqld] 區段)[mysqld] # 錯誤日誌 (建議永久開啟) log-error="D:/logs/mysql/mysql_error.log" # 一般查詢日誌 (記錄所有 SQL,極度消耗 IO,**僅調試短時開啟**) log="D:/logs/mysql/mysql_query.log" # 二進制日誌 (主從複制、時間點恢復必備) log-bin="D:/logs/mysql/mysql_binlog" # binlog_format=ROW (推薦 ROW 格式,5.7+ 預設) # 慢查詢日誌 (效能分析核心) slow-query-log=1 slow-query-log-file="D:/logs/mysql/mysql_slow.log" long_query_time=5 # 超過 5 秒記錄 log-queries-not-using-indexes=1 # 未用索引也記錄 (可選) # 日誌自動清理:保留 3 天 (5.7+ 支援) expire_logs_days=3 # 二進制日誌單檔上限 max_binlog_size=100M
路徑注意: 使用正斜線 / 或雙反斜線 \\,**避免空格**,不要用 # 註釋同行配置。
net stop mysql net start mysql # 或 services.msc 重啟 MySQL 服務 SHOW VARIABLES LIKE 'log_%';



| 日誌 | 用途 | 建議 |
|---|---|---|
| Error Log | 啟動/關閉/異常/崩潰資訊 | 永久開啟 |
| General Query Log | 所有客戶端 SQL | 僅調試開啟,極耗 IO |
| Binary Log | 主從複制、PITR 恢復 | 生產必開,ROW 格式 |
| Slow Query Log | 超時/無索引查詢 | 永久開啟,long_query_time=1-5s |
mysqldumpslow:分析慢查詢日誌,統計高頻慢 SQL。mysqlbinlog:解析二進制日誌,支援按位置/時間範圍導出 SQL。pt-query-digest:專業級慢查詢分析報表。