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

MySQL 錯誤代碼速查表:100+ 常見錯誤代碼、原因與對策

     編輯:MySQL 資料庫相關知識

MySQL 錯誤代碼為四位數,前綴通常為 1xxx。以下彙整 100+ 高頻錯誤代碼、中文說明、常見觸發場景與快速排查方向。

代碼常數名中文說明典型原因/對策
1005ER_CANT_CREATE_TABLE建立表失敗權限不足、磁碟滿、外鍵引用表不存在
1006ER_CANT_CREATE_DB建立資料庫失敗權限、路徑、磁碟空間
1007ER_DB_CREATE_EXISTS資料庫已存在CREATE DATABASE IF NOT EXISTS
1008ER_DB_DROP_EXISTS資料庫不存在拼寫錯誤、已被刪除
1009ER_DB_DROP_DELETE無法刪除資料庫檔案檔案被鎖定、權限、檔案系統錯誤
1010ER_DB_DROP_RMDIR無法刪除資料目錄目錄非空、權限
1011ER_DB_DROP_RMDIR2刪除資料庫檔案失敗同 1009
1012ER_CANT_READ_SYSTEM_TABLE無法讀取系統表記錄權限、表損壞、升級未跑 mysql_upgrade
1020ER_RECORD_CHANGED記錄已被其他用戶修改並發更新衝突,重試或樂觀鎖
1021ER_DISK_FULL磁碟空間不足清理日誌、擴容、檢查 tmpdir
1022ER_DUP_KEY鍵值重複唯一索引/主鍵衝突,INSERT IGNORE 或 ON DUPLICATE KEY UPDATE
1023ER_ERROR_ON_CLOSE關閉時發生錯誤檔案句柄洩漏、磁碟錯誤
1024ER_ERROR_ON_READ讀檔案錯誤磁碟壞軌、檔案損壞、權限
1025ER_ERROR_ON_RENAME重命名錯誤外鍵約束、檔案鎖定、跨檔案系統
1026ER_ERROR_ON_WRITE寫檔案錯誤磁碟滿、權限、檔案系統唯讀
1032ER_KEY_NOT_FOUND記錄不存在DELETE/UPDATE 影響 0 行,檢查 WHERE 條件
1036ER_READ_ONLY表為唯讀FLUSH TABLES WITH READ LOCK、唯讀從庫、檔案系統唯讀
1037ER_OUT_OF_MEMORY記憶體不足重啟服務、調大 innodb_buffer_pool_size、檢查記憶體洩漏
1038ER_OUT_OF_SORTMEMORY排序記憶體不足增大 sort_buffer_size、優化 ORDER BY
1040ER_CON_COUNT_ERROR連線數達上限增大 max_connections、排查連線洩漏、連線池配置
1041ER_OUT_OF_MEMORY系統記憶體不足同 1037,作業系統層面 OOM
1042ER_BAD_HOST_ERROR無效主機名DNS 解析失敗、/etc/hosts、跳板機網路
1043ER_HANDSHAKE_ERROR握手失敗/無效連線版本不協商、SSL/TLS 不匹配、防火牆截斷
1044ER_DBACCESS_DENIED_ERROR無資料庫存取權限GRANT 權限、FLUSH PRIVILEGES
1045ER_ACCESS_DENIED_ERROR帳號/密碼錯誤密碼錯誤、認證插件不匹配、主機名不允許
1048ER_BAD_NULL_ERROR欄位不能為 NULL表定義 NOT NULL 但傳入 NULL
1049ER_BAD_DB_ERROR資料庫不存在拼寫、大小寫敏感 (Linux)、未建立
1050ER_TABLE_EXISTS_ERROR表已存在CREATE TABLE IF NOT EXISTS
1051ER_BAD_TABLE_ERROR表不存在拼寫、大小寫、表已被刪除
1054ER_BAD_FIELD_ERROR欄位不存在拼寫、ALTER TABLE 未同步、視圖定義過期
1065ER_EMPTY_QUERY空 SQL 語句應用層拼接 SQL 產生空字串
1081ER_CANT_CREATE_SOCKET無法建立 Socket權限、目錄不存在、SELinux、tmpdir 滿
1114ER_TABLE_FULL表已滿MyISAM 達 4GB/2GB 限制、磁碟滿、InnoDB 表空間滿
1146ER_NO_SUCH_TABLE表不存在同 1051
1147ER_WRONG_COLUMN_NAME欄位名錯誤同 1054
1153ER_NET_PACKET_TOO_LARGE封包過大增大 max_allowed_packet、分批次傳輸
1175ER_UPDATE_WITHOUT_KEY_IN_SAFE_MODE安全模式下無鍵更新關閉 sql_safe_updates、加 WHERE 主鍵條件
1191ER_CANT_FIND_DL_ENTRY找不到動態庫入口UDF/插件版本不匹配、路徑錯誤
1205ER_LOCK_WAIT_TIMEOUT鎖等待超時長事務、死鎖、索引缺失導致全表掃描鎖
1213ER_LOCK_DEADLOCK死鎖SHOW ENGINE INNODB STATUS 分析、統一加鎖順序
1216ER_NO_REFERENCED_ROW外鍵引用行不存在父表記錄缺失、先插父後插子
1217ER_ROW_IS_REFERENCED行被引用無法刪除先刪子表、或 ON DELETE CASCADE
1264ER_DATA_TOO_LONG資料過長欄位長度不足、字元集編碼導致位元組數超標
1364ER_NO_DEFAULT_FOR_FIELD欄位無預設值嚴格模式下非 NULL 無預設欄位必須顯式賦值
1449ER_VIEW_OTHER_USER視圖定義者不存在定義者帳號被刪、DEFINER 變更
1451ER_ROW_IS_REFERENCED_2外鍵約束刪除失敗同 1217
1452ER_NO_REFERENCED_ROW_2外鍵約束插入失敗同 1216
2002CR_CONNECTION_ERROR無法連線 Socket/TCP服務未啟動、socket 路徑錯誤、防火牆、bind-address
2003CR_CONN_HOST_ERROR無法連線主機網路不通、端口錯誤、防火牆
2006CR_SERVER_GONE_ERROR服務器已斷開超時、大封包、服務重啟、OOM Killer
2013CR_SERVER_LOST查詢中連線斷開同 2006、長查詢超時
2026CR_SSL_CONNECTION_ERRORSSL 連線錯誤憑證過期、CA 不信任、TLS 版本不協商

快速定位技巧

  • 應用層捕獲異常時,記錄 errno、sqlstate、完整 SQL 與參數。
  • perror 1045 命令列即可查看簡要說明。
  • 官方文檔 Server Error Codes and Messages 為權威來源。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved