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

MySQL 錯誤代碼完整對照表:常見 1000-1235 號碼中文說明與處理方向

     編輯:MySQL 資料庫相關知識

高頻錯誤代碼速查

代碼訊息常見原因與處理
1005Can't create table外鍵定義錯誤、磁碟空間不足、權限問題
1006Can't create database目錄權限、磁碟空間、檔案系統錯誤
1007Database exists建庫前先 DROP IF EXISTS 或換名
1008Database doesn't exist拼寫錯誤、大小寫敏感(Linux)、未建立
1016Can't open file表損壞、檔案遺失、權限不足 → REPAIR TABLE
1021Disk full清理空間、擴充磁碟、檢查 tmpdir
1022Duplicate key唯一鍵/主鍵衝突 → 檢查資料或 INSERT IGNORE
1032Record not found更新/刪除條件不匹配、並發下資料已變更
1036Table is read only磁碟滿、權限、MyISAM 唯讀標記 → myisamchk -r
1037Out of memory增加 innodb_buffer_pool_size、重啟服務
1038Sort memory full調大 sort_buffer_size、優化 ORDER BY
1040Too many connections調大 max_connections、檢查連線洩漏
1042Bad hostDNS 解析失敗、skip-name-resolve、hosts 檔
1044Access denied for user權限不足 → GRANT、檢查 host 欄位
1045Access denied (password)帳密錯誤、FLUSH PRIVILEGES、密碼插件不符
1048Column can't be null欄位定義 NOT NULL 但傳入 NULL
1049Unknown database資料庫不存在、拼寫、大小寫
1050Table exists建表前 DROP IF EXISTS
1051Unknown table表不存在、拼寫、大小寫
1054Unknown column欄位不存在、拼寫、ALTER TABLE 未執行
1062Duplicate entry唯一鍵衝突、主鍵重複 → ON DUPLICATE KEY UPDATE
1064SQL syntax error語法錯誤、保留字未加反引號、註解 -- 後需空格
1065Empty query傳入空 SQL 字串
1081Can't create socketsocket 檔案權限、tmpdir、SELinux
1114Table is fullMyISAM 檔案大小限制、磁碟滿、InnoDB 表空間滿
1116Too many open tables調大 table_open_cache、關閉未用表
1129Host blocked連線錯誤過多 → FLUSH HOSTS、調大 max_connect_errors
1130Host not alloweduser 表 host 欄位未授權 → 改為 % 或指定 IP
1133User doesn't exist帳號不存在、拼寫、host 不匹配
1141No db accessGRANT ON db.*
1142No table accessGRANT ON db.table
1143No column accessGRANT SELECT(col) ON db.table
1146Table doesn't exist同 1051
1147Grant not defined權限未定義 → 補 GRANT
1149Syntax error同 1064
1158-1161Network errors網路不穩、防火牆、wait_timeout、max_allowed_packet
1169Duplicate unique同 1062
1177Can't open table表損壞、鎖定、權限
1180Commit failed儲存引擎錯誤、磁碟、死鎖
1181Rollback failed同 1180
1193Unknown variable預存程序變數未宣告
1203User max connections單用戶連線上限 → MAX_USER_CONNECTIONS
1205Lock wait timeout死鎖、長交易 → innodb_lock_wait_timeout、優化索引
1211No create user priv需 CREATE USER 權限
1216FK child fails子表外鍵值父表無對應 → 先插父表
1217FK parent fails父表被引用無法刪改 → 先處理子表
1226User resource exceeded資源配額用盡 → 重啟或調大限制
1227Access denied (specific)缺少特定權限(如 SUPER、FILE)
1235Version too old功能需較新版本 → 升級 MySQL
2002Can't connect to server服務未啟動、socket/tcp 埠錯誤、防火牆

完整代碼對照(節錄官方定義)

下表對應 MySQL 官方錯誤符號、代碼與 SQLSTATE,供開發時程式化判斷使用。

符號代碼SQLSTATE
ER_HASHCHK1000HY000
ER_NISAMCHK1001HY000
ER_CANT_CREATE_FILE1004HY000
ER_CANT_CREATE_TABLE1005HY000
ER_CANT_CREATE_DB1006HY000
ER_DB_CREATE_EXISTS1007HY000
ER_DB_DROP_EXISTS1008HY000
ER_DB_DROP_DELETE1009HY000
ER_DB_DROP_RMDIR1010HY000
ER_CANT_DELETE_FILE1011HY000
ER_CANT_FIND_SYSTEM_REC1012HY000
ER_CANT_GET_STAT1013HY000
ER_CANT_GET_WD1014HY000
ER_CANT_LOCK1015HY000
ER_CANT_OPEN_FILE1016HY000
ER_FILE_NOT_FOUND1017HY000
ER_CANT_READ_DIR1018HY000
ER_CANT_SET_WD1019HY000
ER_CHECKREAD1020HY000
ER_DISK_FULL1021HY000
ER_DUP_KEY102223000
ER_ERROR_ON_CLOSE1023HY000
ER_ERROR_ON_READ1024HY000
ER_ERROR_ON_RENAME1025HY000
ER_ERROR_ON_WRITE1026HY000
ER_FILE_USED1027HY000
ER_FILSORT_ABORT1028HY000
ER_FORM_NOT_FOUND1029HY000
ER_GET_ERRNO1030HY000
ER_ILLEGAL_HA1031HY000
ER_KEY_NOT_FOUND1032HY000
ER_NOT_FORM_FILE1033HY000
ER_NOT_KEYFILE1034HY000
ER_OLD_KEYFILE1035HY000
ER_OPEN_AS_READONLY1036HY000
ER_OUTOFMEMORY1037HY001
ER_OUT_OF_SORTMEMORY1038HY001
ER_UNEXPECTED_EOF1039HY000
ER_CON_COUNT_ERROR104008004
ER_OUT_OF_RESOURCES104108004
ER_BAD_HOST_ERROR104208S01
ER_HANDSHAKE_ERROR104308S01
ER_DBACCESS_DENIED_ERROR104442000
ER_ACCESS_DENIED_ERROR104542000
ER_NO_DB_ERROR104642000
ER_UNKNOWN_COM_ERROR104708S01
ER_BAD_NULL_ERROR104823000
ER_BAD_DB_ERROR104942000
ER_TABLE_EXISTS_ERROR105042S01
ER_BAD_TABLE_ERROR105142S02
ER_NON_UNIQ_ERROR105223000
ER_SERVER_SHUTDOWN105308S01
ER_BAD_FIELD_ERROR105442S22
ER_DUP_ENTRY106223000
ER_PARSE_ERROR106442000
ER_EMPTY_QUERY106542000
ER_INVALID_DEFAULT106742000
ER_MULTIPLE_PRI_KEY106842000
ER_TOO_MANY_KEYS106942000
ER_TOO_MANY_KEY_PARTS107042000
ER_TOO_LONG_KEY107142000
ER_KEY_COLUMN_DOES_NOT_EXITS107242000
ER_BLOB_USED_AS_KEY107342000
ER_TOO_BIG_FIELDLENGTH107442000
ER_WRONG_AUTO_KEY107542000
ER_IPSOCK_ERROR108108S01
ER_RECORD_FILE_FULL1114HY000
ER_TOO_MANY_TABLES1116HY000
ER_HOST_IS_BLOCKED1129HY000
ER_HOST_NOT_PRIVILEGED1130HY000
ER_PASSWORD_NO_MATCH113342000
ER_TABLEACCESS_DENIED_ERROR114242000
ER_COLUMNACCESS_DENIED_ERROR114342000
ER_NO_SUCH_TABLE114642S02
ER_SYNTAX_ERROR114942000
ER_NET_READ_ERROR115808S01
ER_NET_READ_INTERRUPTED115908S01
ER_NET_ERROR_ON_WRITE116008S01
ER_NET_WRITE_INTERRUPTED116108S01
ER_DUP_UNIQUE116923000
ER_CHECK_NO_SUCH_TABLE117742000
ER_ERROR_DURING_COMMIT1180HY000
ER_ERROR_DURING_ROLLBACK1181HY000
ER_UNKNOWN_SYSTEM_VARIABLE1193HY000
ER_TOO_MANY_USER_CONNECTIONS120342000
ER_LOCK_WAIT_TIMEOUT1205HY000
ER_NO_PERMISSION_TO_CREATE_USER121142000
ER_NO_REFERENCED_ROW121623000
ER_ROW_IS_REFERENCED121723000
ER_USER_LIMIT_REACHED122642000
ER_SPECIFIC_ACCESS_DENIED_ERROR1227HY000
ER_NOT_SUPPORTED_YET123542000

使用建議

  • 程式碼中捕捉例外時,優先判斷 errno(數字代碼)而非訊息文字。
  • 搭配 SQLSTATE 可跨資料庫移植錯誤處理邏輯。
  • 完整最新清單請參考 MySQL 官方錯誤參考手冊。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved