首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL 官方錯誤代碼完整對照表(Server 1000-1494 / Client 2000-2054)

     編輯:MySQL 資料庫相關知識

MySQL 官方錯誤代碼定義於源碼 share/errmsg.txt,生成 include/mysqld_error.h(Server)、include/errmsg.h(Client)。本文整理高頻錯誤代碼、SQLSTATE、英文訊息與中文解釋,便於快速排查。

一、Server 錯誤代碼高頻精選(1000-1494)

錯誤碼SQLSTATE符號常量中文含義典型場景
1004HY000ER_CANT_CREATE_FILE無法創建文件磁碟滿、權限不足、路徑不存在
1005HY000ER_CANT_CREATE_TABLE無法創建表外鍵定義錯誤、磁碟空間不足
1007HY000ER_DB_CREATE_EXISTS數據庫已存在重複 CREATE DATABASE
1008HY000ER_DB_DROP_EXISTS數據庫不存在DROP 不存在的庫
1016HY000ER_CANT_OPEN_FILE無法打開文件表文件損壞/遺失、權限問題
1021HY000ER_DISK_FULL磁碟滿清理空間或擴容
102223000ER_DUP_KEY重複鍵值唯一索引/主鍵衝突
1032HY000ER_KEY_NOT_FOUND找不到記錄DELETE/UPDATE 未命中行
1037HY001ER_OUTOFMEMORY內存溢出調大 innodb_buffer_pool、排查泄漏
104008004ER_CON_COUNT_ERROR連接數超限調大 max_connections、排查洩漏
104208S01ER_BAD_HOST_ERROR無法解析主機名DNS 故障、需 skip-name-resolve
104442000ER_DBACCESS_DENIED_ERROR數據庫訪問被拒權限不足、GRANT 錯誤
104528000ER_ACCESS_DENIED_ERROR用戶/密碼錯誤認證失敗、密碼過期、插件不匹配
104942000ER_BAD_DB_ERROR未知數據庫拼寫錯誤、庫未創建
105042S01ER_TABLE_EXISTS_ERROR表已存在重複 CREATE TABLE
105142S02ER_BAD_TABLE_ERROR未知表表名錯誤、大小寫敏感
105442S22ER_BAD_FIELD_ERROR未知列列名拼寫錯誤、表結構變更
106223000ER_DUP_ENTRY重複條目主鍵/唯一鍵衝突(最常見)
106442000ER_PARSE_ERRORSQL 語法錯誤保留字未轉義、引號不匹配
106742000ER_INVALID_DEFAULT無效默認值TIMESTAMP/DATETIME 默認值語法
1114HY000ER_RECORD_FILE_FULL表滿MyISAM 達 4GB/2TB 限制、磁碟滿
114642S02ER_NO_SUCH_TABLE表不存在跨庫查詢未加庫前綴
115308S01ER_NET_PACKET_TOO_LARGE封包超大調大 max_allowed_packet
1175HY000ER_UPDATE_WITHOUT_KEY_IN_SAFE_MODE安全模式禁止無 KEY UPDATE關閉 sql_safe_updates 或加 WHERE
1194HY000ER_CRASHED_ON_REPAIR表標記崩潰且修復失敗REPAIR TABLE 失效、需備份恢復
1205HY000ER_LOCK_WAIT_TIMEOUT鎖等待超時優化長事務、調大 innodb_lock_wait_timeout
121340001ER_LOCK_DEADLOCK死鎖檢查索引、統一加鎖順序、重試
121623000ER_NO_REFERENCED_ROW外鍵約束失敗(父行不存在)先插入父表再插子表
121723000ER_ROW_IS_REFERENCED外鍵約束失敗(子行存在)先刪子表再刪父表、或 CASCADE
122642000ER_USER_LIMIT_REACHED用戶資源超限MAX_QUERIES_PER_HOUR 等限制
1290HY000ER_OPTION_PREVENTS_STATEMENT選項禁止該語句--skip-grant-tables 下執行 FLUSH PRIVILEGES
1364HY000ER_NO_DEFAULT_FOR_FIELD字段無默認值NOT NULL 無 DEFAULT 且未顯式賦值
1366HY000ER_TRUNCATED_WRONG_VALUE_FOR_FIELD字段值錯誤被截斷數據類型不匹配、編碼問題
1396HY000ER_CANNOT_USER用戶操作失敗DROP USER 不存在、權限不足
140622001ER_DATA_TOO_LONG數據過長超過列定義長度、嚴格模式
1418HY000ER_BINLOG_UNSAFE_ROUTINE函數/觸發器不安全需 DETERMINISTIC/READS SQL DATA 或 log_bin_trust_routine_creators=1
145123000ER_ROW_IS_REFERENCED_2外鍵約束失敗(詳細信息)同 1217,含約束名
145223000ER_NO_REFERENCED_ROW_2外鍵約束失敗(詳細信息)同 1216,含約束名

二、Client 錯誤代碼高頻精選(2000-2054)

錯誤碼符號常量中文含義典型場景
2002CR_CONNECTION_ERROR無法連接本地 MySQL 服務Socket 文件錯誤、服務未啟動
2003CR_CONN_HOST_ERROR無法連接遠程主機IP/端口錯誤、防火牆阻擋、skip-networking
2006CR_SERVER_GONE_ERRORMySQL 服務器已消失服務重啟、超時斷開、封包過大
2013CR_SERVER_LOST查詢過程中丟失連接長查詢超時、網路抖動、服務端 OOM Kill
2014CR_COMMANDS_OUT_OF_SYNC命令不同步多結果集未正確處理、預處理狀態錯誤
2026CR_SSL_CONNECTION_ERRORSSL 連接錯誤證書過期、CA 不信任、協議版本不匹配
2027CR_MALFORMED_PACKET畸形封包客戶端/服務端版本不兼容、網路設備截斷
2049CR_SECURE_AUTH拒絕舊認證協議客戶端開啟 secure_auth、服務端舊密碼格式
2053CR_NO_RESULT_SET無結果集預處理語句非 SELECT、游標異常
2054CR_NOT_IMPLEMENTED特性未實現驅動版本過舊、不支援新功能

三、快速查找技巧

四、SQLSTATE 分類速記

類別碼含義
08xxx連接異常
22xxx數據異常(長度、編碼、數值範圍)
23xxx完整性約束違規
28xxx授權無效
40xxx事務回滾/死鎖
42xxx語法/存取規則違規
HY000通用錯誤(無具體分類)

收藏此表,排查報錯不再查文檔,秒級定位根因。

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