MySQL 提供五大日志類型,分別服務於錯誤診斷、審計、慢查詢分析、復制與時間點恢復。
| 日志類型 | 啟動參數 | 核心用途 |
|---|---|---|
| 錯誤日志 | --log-error | 服務啟停、崩潰堆疊、關鍵錯誤 |
| 通用查詢日志 | --log | 所有連接/斷開/語句,審計用 |
| 慢查詢日志 | --log-slow-queries | 執行超時/未用索引語句,調優核心 |
| 更新日志 | --log-update | 已廢棄,5.1+ 由 binlog 替代 |
| 二進制日志 | --log-bin | 主從復制、增量備份、時間點恢復 |
-- 查看所有 log 相關變量
SHOW VARIABLES LIKE 'log_%';
-- 查看當前 binlog 文件與位置
SHOW MASTER STATUS;
-- 列出所有 binlog 文件
SHOW MASTER LOGS;
-- 解析 binlog 文件
mysqlbinlog mysql-bin.000001 | tail
[mysqld]
log-error=/var/log/mysql/error.log
log=/var/log/mysql/mysql.log
long_query_time=2
log-slow-queries=/var/log/mysql/slow.log
log-queries-not-using-indexes
log-bin=/var/log/mysql/binlog
expire_logs_days=7
max_binlog_size=100M
[mysqld]
log-error="C:/mysql/logs/error.log"
log="C:/mysql/logs/mysql.log"
long_query_time=2
log-slow-queries="C:/mysql/logs/slow.log"
log-queries-not-using-indexes
log-bin="C:/mysql/logs/binlog"
expire_logs_days=7
long_query_time=2:超過 2 秒記入慢查詢日志。log-queries-not-using-indexes:記錄未命中索引的全表掃描語句。expire_logs_days:自動清理過期 binlog,防止磁盤寫滿。