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

MySQL 錯誤代碼大全 (服務端 1000-1494 + 客戶端 2000-2054) 完整版

     編輯:MySQL 綜合教學

使用指南

  • 服務端錯誤源自 share/errmsg.txt,映射至 mysqld_error.h、sql_state.h
  • 客戶端錯誤源自 include/errmsg.h、libmysql/errmsg.c
  • 查找方式:Ctrl+F 搜索錯誤號 (如 1062) 或 SQLSTATE (如 23000)
  • 訊息中 %d、%s 為運行時動態替換的數值/字符串

高頻錯誤速查表 (Top 20)

錯誤碼SQLSTATE常見原因對策
104528000ER_ACCESS_DENIED_ERROR用戶/密碼/主機不匹配 → 檢查 user 表、flush privileges
104942000ER_BAD_DB_ERROR庫不存在 → 建庫或檢查拼寫
105042S01ER_TABLE_EXISTS_ERROR建表名衝突 → DROP IF EXISTS 或換名
105442S22ER_BAD_FIELD_ERROR列名錯誤 → 檢查拼寫、大小寫、反引號
106223000ER_DUP_ENTRY唯一鍵衝突 → 捕獲異常、INSERT IGNORE、ON DUPLICATE KEY UPDATE
106442000ER_PARSE_ERRORSQL 語法錯誤 → 對照版本手冊、檢查保留字
114642S02ER_NO_SUCH_TABLE表不存在 → 檢查庫上下文、表名大小寫 (lower_case_table_names)
115308S01ER_NET_PACKET_TOO_LARGE封包超限 → 加大 max_allowed_packet
1205HY000ER_LOCK_WAIT_TIMEOUT鎖等待超時 → 縮短事務、優化索引、調大 innodb_lock_wait_timeout
121340001ER_LOCK_DEADLOCK死鎖 → 統一加鎖順序、縮短事務、重試邏輯
126422003ER_WARN_DATA_OUT_OF_RANGE數值溢出 → 檢查類型範圍、應用層驗證
1364HY000ER_NO_DEFAULT_FOR_FIELD非空無默認值插入 → 給默認值或顯式賦值
1366HY000ER_TRUNCATED_WRONG_VALUE_FOR_FIELD類型轉換失敗 → 檢查輸入格式、字符集
145223000ER_NO_REFERENCED_ROW_2外鍵父行缺失 → 先插父表、檢查關聯數據
200208S01CR_CONNECTION_ERROR本地 socket 連不上 → 檢查服務、socket 路徑、權限
200308S01CR_CONN_HOST_ERROR遠程連不上 → 防火牆、bind-address、skip-name-resolve
200608S01CR_SERVER_GONE_ERROR服務端斷開 → 超時、OOM、大封包、崩潰 → 查 error log
201308S01CR_SERVER_LOST查詢中斷連接 → 同 2006
202408S01CR_PROBE_SLAVE_CONNECT從庫連主失敗 → CHANGE MASTER TO 參數、網絡、權限

完整列表導航

本文包含 服務端 1000-1494 (約 500 條) 與 客戶端 2000-2054 (約 55 條) 完整定義。因篇幅極長,建議:

  1. 收藏本頁作為離線速查手冊
  2. 實際開發中遇到錯誤碼直接搜索
  3. 配合 perror 命令行工具:perror 1062 → Error code 1062: Duplicate entry
註:MySQL 8.0 新增錯誤碼 (3000+ 系列) 不在本表範圍內,請參考官方手冊 Server Error Codes and Messages。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved