首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

MySQL 日志文件全景指南:六大日志類型、作用與配置詳解

     編輯:MySQL 綜合教學

概述

日志是 MySQL 運行的「黑盒記錄儀」,對故障診斷、性能調優、數據恢復、主從同步至關重要。MySQL 主要包含六類日志文件:

  1. 錯誤日志
  2. 二進制日志 & Binlog Index
  3. 通用查詢日志
  4. 慢查詢日志
  5. InnoDB Redo Log
  6. 更新日志(已廢棄)

1. 錯誤日志

  • 記錄內容:啟動/關閉信息、嚴重警告、錯誤堆棧。
  • 默認狀態:關閉,輸出到 stderr。
  • 啟用方式:--log-error[=file_name] 或 my.cnf log-error。
  • 默認位置:數據目錄下 hostname.err。
  • 輪轉:FLUSH LOGS 觸發舊文件重命名為 .old 後綴,生成新文件。

2. 二進制日志

MySQL 最核心日志,記錄所有修改數據的操作(不含 SELECT/SHOW),二進制格式,事務安全。

  • 啟用:--log-bin[=file_name],默認數據目錄 mysql-bin.序號。
  • 關鍵參數:
    • max_binlog_size:單文件上限,達到時切換新文件(大事務可能超過)。
    • binlog-do-db / binlog-ignore-db:按當前默認數據庫過濾,非按操作對象數據庫。
  • Binlog Index:mysql-bin.index 記錄所有 Binlog 絕對路徑,供線程查找。
  • 用途:數據恢復、主從復制、審計。

3. 通用查詢日志

  • 記錄內容:所有 SQL(含 SELECT),文本格式。
  • 啟用:--log[=file_name],默認 hostname.log。
  • 性能影響:體積大、IO 重,僅建議臨時開啟排查特定問題。

4. 慢查詢日志

  • 記錄內容:執行時間超過 long_query_time(默認 10s,5.1+ 支持微秒)的查詢,含時間、用戶、主機、耗時等。
  • 啟用:--log-slow-queries[=file_name],默認 hostname-slow.log。
  • 分析工具:mysqldumpslow 彙總分析。
  • 擴展:log_queries_not_using_indexes 記錄未用索引的查詢;log_output=TABLE 寫入 mysql.slow_log 表。

5. InnoDB Redo Log

  • 角色:配合 Undo Log 保證事務 ACID(WAL 機制)。
  • 記錄內容:頁物理修改、事務信息。
  • 文件:默認數據目錄 ib_logfile0、ib_logfile1,循環寫入。
  • 配置:innodb_log_group_home_dir(目錄)、innodb_log_files_in_group(文件數)、innodb_log_file_size(單文件大小)。

6. 更新日志

早期版本文本格式記錄修改操作,功能類 Binlog。MySQL 5.0 起已移除,不再支持。

總結

各日志職責清晰:錯誤日志看故障,Binlog 做備份同步,慢查詢調優 SQL,Redo Log 保事務。生產環境建議:必開 Binlog、慢查詢、錯誤日志;通用日志僅臨時開啟。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved