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

MySQL 錯誤代碼完整對照表(1005-1235)含原因與解決方向

     編輯:MySQL 資料庫相關知識

常見錯誤代碼分類速查

代碼訊息摘要常見原因 / 處置建議
1005建立表失敗外鍵定義錯誤(參考欄位類型不符、缺索引),見 ERROR 1005 專文
1006建立資料庫失敗權限不足、磁碟空間不足、目錄已存在
1007資料庫已存在CREATE DATABASE IF NOT EXISTS 避免
1008資料庫不存在拼寫錯誤、未建立
1012無法讀取系統表記錄權限、表損壞,嘗試 REPAIR TABLE mysql.user
1021磁碟空間不足清理空間或擴充磁碟
1022鍵值重複唯一索引/主鍵衝突,檢查資料或用 INSERT IGNORE/ON DUPLICATE KEY UPDATE
1032記錄不存在UPDATE/DELETE 條件未匹配任何行
1036表唯讀檢查 READ ONLY 模式、檔案系統唯讀、權限
1037記憶體不足重啟服務、調大 innodb_buffer_pool_size、檢查記憶體洩漏
1040連接數達上限調大 max_connections、檢查連線洩漏、用連線池
1042無效主機名DNS 解析失敗、/etc/hosts、skip-name-resolve
1044/1045權限被拒/帳密錯誤GRANT 權限、FLUSH PRIVILEGES、確認主機通配符 %
1048欄位不能為 NULL表定義 NOT NULL 但傳入 NULL
1050表已存在CREATE TABLE IF NOT EXISTS
1051/1146表不存在拼寫、大小寫敏感(Linux)、表被刪
1054欄位不存在ALTER TABLE 未執行、拼寫錯誤
1062重複鍵值同 1022
1065空 SQL 語句檢查應用層動態 SQL 組裝邏輯
1081無法建立 Socket檢查 socket 參數、權限、SELinux
1114表已滿MyISAM 達 4GB/256TB 上限、磁碟滿、InnoDB 表空間滿
1116打開表過多調大 table_open_cache、open_files_limit
1129資料庫異常重啟服務、檢查錯誤日誌
1130連線被拒(無權限)同 1044/1045,檢查 host 欄位
1142/1143無表/欄位權限GRANT 具體權限
1149SQL 語法錯誤保留字未加反引號、版本語法差異
1158-1161網路讀寫錯誤/逾時檢查網路、防火牆、net_read_timeout/net_write_timeout
1169更新時重複值同 1022
1180/1181提交/回滾失敗檢查 InnoDB 日誌、磁碟、鎖等待
1203用戶連接數達上限同 1040,調大 max_user_connections
1205鎖等待逾時innodb_lock_wait_timeout、優化長事務、索引
1213死鎖InnoDB 自動回滾,應用層重試;固定加鎖順序
1216/1217外鍵約束失敗子表插入無對應父表值 / 父表刪除有子表引用
1226用戶資源超限MAX_QUERIES_PER_HOUR 等資源限制
1227權限不足需 SUPER/FILE 等管理權限
1235版本過低不支援功能升級 MySQL 或改用相容語法

排查黃金法則

  1. 看錯誤日誌:mysqld.err 常含更詳細堆疊資訊。
  2. 善用 SHOW ENGINE INNODB STATUS:死鎖、鎖等待、外鍵錯誤的現場直擊。
  3. 檢查 SQL 模式:sql_mode 影響嚴格度(如 STRICT_TRANS_TABLES)。
  4. 最小複現:剝離業務邏輯,在測試庫用最簡 SQL 複現。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved