| 代碼範圍 | 類別 | 典型代碼 |
|---|---|---|
| 1005-1011 | 建庫/建表/刪庫失敗 | 1005(建表失敗)、1007(庫已存在)、1008(庫不存在)、1011(刪除檔案失敗) |
| 1020-1026 | 檔案/記錄操作錯誤 | 1020(記錄被改)、1021(磁碟滿)、1022(鍵值重複)、1024(讀檔錯)、1025(改名錯)、1026(寫檔錯) |
| 1032-1038 | 記憶體/記錄不存在 | 1032(記錄不存在)、1036(唯讀表)、1037(記憶體不足)、1038(排序緩衝不足) |
| 1040-1045 | 連線/認證錯誤 | 1040(連線數滿)、1042(主機名無效)、1044(無庫權限)、1045(帳號密碼錯) |
| 1048-1054 | 欄位/表結構錯誤 | 1048(欄位非空)、1049(庫不存在)、1050(表已存在)、1051(表不存在)、1054(欄位不存在) |
| 1062, 1065 | 資料完整性/SQL 語法 | 1062(值重複)、1065(空 SQL) |
| 1081 | Socket 連線 | 1081(無法建立 Socket) |
| 1114-1116 | 表滿/開啟過多 | 1114(表滿)、1116(開啟表過多) |
| 1129-1149 | 權限/語法/網路 | 1129(異常重啟)、1130(連線被拒)、1133(用戶不存在)、1146(表不存在)、1149(語法錯誤) |
| 1158-1161 | 網路讀寫超時 | 1158(讀錯)、1159(讀超時)、1160(寫錯)、1161(寫超時) |
| 1169, 1177 | 重複值/開表失敗 | 1169(更新重複)、1177(開表失敗) |
| 1180-1181 | 事務提交/回滾失敗 | 1180(提交失敗)、1181(回滾失敗) |
| 1203, 1205 | 連線數/鎖超時 | 1203(用戶連線滿)、1205(鎖超時) |
| 1211, 1216-1217 | 權限/外鍵 | 1211(無建用戶權限)、1216(外鍵檢查失敗-子表)、1217(外鍵檢查失敗-父表) |
| 1226-1227 | 資源/權限不足 | 1226(資源超限)、1227(權限不足) |
| 1235 | 版本不支援 | 1235(版本過低無此功能) |
| 錯誤代碼 | 常見原因 | 解決方向 |
|---|---|---|
| 1040 / 1203 | max_connections 耗盡 | 調大 max_connections、檢查連線洩漏、用連線池、啟用 thread_cache |
| 1045 | 帳號/密碼/主機不匹配 | 檢查 user.Host、密碼插件 (caching_sha2_password vs mysql_native_password)、FLUSH PRIVILEGES |
| 1062 / 1169 | 唯一鍵/主鍵衝突 | 業務邏輯去重、INSERT IGNORE/ON DUPLICATE KEY UPDATE、檢查自增 ID 耗盡 |
| 1114 | MyISAM 表達 4GB/2GB 上限、InnoDB 表空間滿 | 轉 InnoDB、擴充表空間、分表分區 |
| 1130 | 防火牆/授權表 Host 不匹配 | 授權 'user'@'%' 或具體 IP、開放 3306 埠 |
| 1146 / 1051 | 表名大小寫不匹配 (Linux) | 設定 lower_case_table_names=1、統一小寫命名 |
| 1158-1161 | 網路不穩/大封包/長查詢 | 調大 net_read_timeout/net_write_timeout/max_allowed_packet、優化慢查詢 |
| 1205 | 行鎖等待超時 | 縮短事務、索引優化避免全表掃描鎖、調大 innodb_lock_wait_timeout |
| 1216/1217 | 外鍵約束違反 | 先刪子表再刪父表、檢查關聯資料完整性 |
| 1226 | 用戶資源限制 (MAX_QUERIES_PER_HOUR 等) | 調整 GRANT ... WITH MAX_QUERIES_PER_HOUR、或移除限制 |
# 命令列
perror 1062
# 輸出:MySQL error code 1062: Duplicate entry for key
# SQL 中
SELECT * FROM information_schema.ENGINES; -- 不含錯誤碼
-- 官方文檔:https://dev.mysql.com/doc/mysql-errors/en/