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

MySQL 錯誤日誌 管理與分析實戰

     編輯:MySQL 綜合教學

MySQL Error Log 錯誤日誌完整管理指南

錯誤日誌是診斷 MySQL 啟動失敗、異常關機、損壞恢復、權限問題的首要依據。掌握配置、查看、輪轉、分析全流程。

1. 錯誤日誌組成與預設位置

  • 預設位置:資料目錄 (datadir) 下,檔名 hostname.err (如 ovonel-usa.err)
  • 關鍵內容:啟動/關機過程、InnoDB 恢復資訊、錯誤/警告訊息、核心傾印引導

2. 配置自定義錯誤日誌路徑

# /etc/my.cnf 或 /etc/mysql/my.cnf
[mysqld]
log-error = /var/log/mysql/mysql-error.log
# 或相對路徑 (相對 datadir)
log-error = mysql-error.log

修改後需重啟服務生效。

3. 實戰演示:模擬配置錯誤觀察日誌

# 1. 查看當前錯誤日誌配置
mysql> SHOW VARIABLES LIKE 'log_error';

# 2. 故意加入錯誤參數測試
# vi /etc/my.cnf
[mysqld]
skip-opt  # 不存在的參數

# 3. 重啟觀察
service mysqld restart
# 失敗,查看日誌
cat /var/log/mysql/mysql-error.log
# 輸出含:
# [ERROR] unknown variable 'skip-opt'
# [ERROR] Aborting

4. 錯誤日誌格式解讀

2024-01-15T10:30:45.123456Z 0 [System] [MY-010116] [Server] /usr/sbin/mysqld (mysqld 8.0.33) starting as process 1234
2024-01-15T10:30:45.123789Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
2024-01-15T10:30:46.456123Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
2024-01-15T10:30:46.789012Z 0 [Warning] [MY-010068] [Server] CA certificate ca.pem is self signed.
2024-01-15T10:30:46.789345Z 0 [System] [MY-010931] [Server] ready for connections. Version: '8.0.33'  socket: '/var/run/mysqld/mysqld.sock'  port: 3306  MySQL Community Server - GPL.

關鍵欄位:時間戳 (ISO8601)、線程 ID、錯誤等級 (System/Warning/Error)、錯誤代碼 [MY-XXXXX]、組件 [Server/InnoDB/Repl]、訊息內容。

5. 日誌輪轉與保留策略

  • 手動輪轉:mysqladmin -u root -p flush-logs (重新打開日誌檔案,舊檔需自行備份/刪除)
  • logrotate 系統級輪轉 (推薦):
    /var/log/mysql/mysql-error.log {
        daily
        rotate 14
        compress
        delaycompress
        missingok
        notifempty
        create 640 mysql mysql
        sharedscripts
        postrotate
            mysqladmin -u root -p flush-logs 2>/dev/null || true
        endscript
    }
  • MySQL 8.0+ 原生輪轉:log_error_services = 'log_filter_internal; log_sink_internal; log_sink_test' 可配合元件化日誌沉澱。

6. 常見錯誤代碼速查

7. 最佳實踐建議

  1. 集中化日誌收集 (ELK/EFK、Loki、Splunk) 統一檢索告警。
  2. 關鍵錯誤等級 (Error/Fatal) 設置即時告警 (PagerDuty、企業微信、釘釘)。
  3. 保留至少 14 天錯誤日誌,慢查詢、Binlog 依業務合規保留。
  4. 定期演練:模擬 Crash 恢復、主從切換,驗證日誌完整性。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
代碼含義典型場景
MY-010116Server 起始正常啟動
MY-010931Ready for connections正常就緒
MY-013576/77InnoDB 初始化開始/結束正常/異常恢復
MY-000000通用錯誤參數錯誤、權限不足、磁碟滿
MY-010874InnoDB 頁檢驗和失敗資料損壞、硬體故障
MY-011071主從複寫 SQL 執行錯誤從庫重放失敗