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

MySQL 伺服器與客戶端錯誤代碼完整對照表 (1000-2054)

     編輯:MySQL 綜合教學

錯誤代碼來源與結構

MySQL 錯誤分為 伺服器端 (Server) 與 客戶端 (Client) 兩大類:

  • Server Errors (1000~1999):定義於 share/errmsg.txt,對應 include/mysqld_error.h、sql_state.h。
  • Client Errors (2000~2054):定義於 include/errmsg.h、libmysql/errmsg.c。

每筆錯誤包含:Error Code、SQLSTATE、Symbol、Message (含 %d %s 佔位符)。

高頻伺服器錯誤速查 (節錄)

CodeSQLSTATE常見訊息典型原因/處置
1005HY000Can't create table (errno: 150)外鍵建立失敗 → 檢查引擎、字符集、型別、索引
1007HY000Can't create database; database exists建庫重名 → IF NOT EXISTS 或先 DROP
1008HY000Can't drop database; database doesn't exist刪除不存在的庫
102223000Duplicate key唯一鍵衝突 → 檢查業務邏輯或 INSERT IGNORE/ON DUPLICATE KEY
1032HY000Key not foundInnoDB 找不到記錄,可能頁面損壞或並發刪除
104008004Too many connections連線數達 max_connections → 擴大參數或連線池洩漏
104442000Access denied for user to database權限不足 → GRANT 對應庫/表
104528000Access denied (using password: YES/NO)帳號/密碼/主機不匹配 → 檢查 mysql.user Host 欄位
104942000Unknown database庫名拼錯或未建立
105042S01Table already exists建表重名 → IF NOT EXISTS
105142S02Unknown table表名拼錯、大小寫敏感 (Linux) 或表已刪除
105442S22Unknown column欄位名拼錯或 ALTER TABLE 未同步
106223000Duplicate entry for key主鍵/唯一鍵重複 → 業務去重或自增衝突
106442000SQL syntax error near '...'語法錯誤 → 對照版本手冊,注意保留字需反引號
1093HY000Can't specify target table for update in FROM clause同表子查詢更新 → 用衍生表包裹 SELECT * FROM (SELECT ...) AS t
1114HY000Table is full磁碟滿、InnoDB 表空間滿、innodb_data_file_path 無 autoextend
1130HY000Host is not allowed to connect遠程連線未授權 → GRANT ... TO user@'%' 或指定 IP
114642S02Table doesn't exist同 1051,常見於拼寫或大小寫
115308S01Got a packet bigger than max_allowed_packet封包過大 → 調大 max_allowed_packet
1175HY000Safe update mode: WHERE required with KEY columnsql_safe_updates=ON 禁止無 WHERE 更新 → 加 WHERE 或關閉選項
1194HY000Table marked as crashed, should be repairedMyISAM 表損壞 → REPAIR TABLE 或 myisamchk
1205HY000Lock wait timeout exceeded行鎖等待超時 innodb_lock_wait_timeout → 檢查長事務、索引缺失
121340001Deadlock found, try restarting transaction死鎖 → 固定加鎖順序、縮短事務、降低隔離級別
1215HY000Cannot add foreign key constraint同 1005,詳見外鍵排查清單
122642000User has exceeded resource limits帳號資源上限 (MAX_QUERIES_PER_HOUR 等) → 調整或重置
129222007Truncated incorrect value型別轉換失敗 (如字串存日期) → 清洗資料、修正型別
131770100Query execution was interruptedKILL QUERY 或 max_execution_time 觸發
1364HY000Field doesn't have a default valueNOT NULL 無預設值欄位未給值 → 設 DEFAULT 或應用層補值
1366HY000Incorrect value for column資料不符合欄位定義 (編碼、ENUM、範圍)
140622001Data too long for column字串超過 VARCHAR/TEXT 定義長度 → 截斷或擴大欄位
1418HY000Function lacks DETERMINISTIC/NO SQL/READS SQL DATA建函數需宣告特性或開啟 log_bin_trust_function_creators=1
1449HY000The user specified as definer does not existView/Trigger/Event 定義者帳號已刪 → 重建或 ALTER DEFINER
145123000Cannot delete or update parent row (FK)父表記錄被子表參照 → 先處理子表或 ON DELETE CASCADE
145223000Cannot add or update child row (FK)子表外鍵值在父表不存在 → 檢查資料完整性

高頻客戶端錯誤速查

CodeSymbol訊息處置
2002CR_CONNECTION_ERRORCan't connect to local MySQL server through socketSocket 路徑錯、服務未啟、權限
2003CR_CONN_HOST_ERRORCan't connect to MySQL server on 'host'遠程連線被拒 → bind-address、防火牆、帳號 Host
2006CR_SERVER_GONE_ERRORMySQL server has gone away長連線斷開、封包過大、Server 重啟、超時
2013CR_SERVER_LOSTLost connection to MySQL server during query查詢執行中斷 → 檢查網路、超時、OOM
2014CR_COMMANDS_OUT_OF_SYNCCommands out of sync多結果集未處理完 → mysql_next_result 或關閉游標
2020CR_NET_PACKET_TOO_LARGEPacket larger than max_allowed_packet同 1153,調大參數
2026CR_SSL_CONNECTION_ERRORSSL connection error憑證/協議不匹配 → 驗證 ssl_ca、ssl_cert、TLS 版本
2049CR_SECURE_AUTHConnection using old auth protocol refused舊密碼雜湊 → 升級帳號密碼 ALTER USER ... IDENTIFIED WITH caching_sha2_password

查詢錯誤代碼的實用指令

-- 伺服器端:查看完整清單 (需源碼或官網)
-- 客戶端:perror 工具解釋系統錯誤號
perror 28  -- 輸出: OS error code 28: No space left on device

-- 程式中獲取
SELECT @@version; -- 確認版本對應錯誤清單

最佳實踐

  1. 記錄完整錯誤:Code + SQLSTATE + Message,避免只看訊息誤判。
  2. 對照版本:不同版本會新增/調整錯誤碼,以官方文檔為準。
  3. 監控告警:關鍵錯誤 (1040, 1062, 1153, 1205, 1213, 2006, 2013) 接入監控系統即時告警。
  4. 善用 perror:快速解碼 OS 層面 errno (如 28 磁碟滿、13 權限、111 連線拒絕)。

收藏此對照表,遇到報錯秒定位,大幅縮短排查時間。

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