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

MySQL 常見錯誤代碼中文詳細說明 (1005~1235) 完整對照表

     編輯:關於SqlServer

    錯誤代碼分類速查

    代碼範圍類別典型代碼
    1005~1011建立/刪除資料庫/資料表失敗1005 建表失敗、1007 資料庫已存在、1008 資料庫不存在
    1020~1032資料操作與檔案 IO1021 磁碟空間不足、1032 記錄不存在
    1036~1049資料表狀態與連線1036 唯讀表、1040 連線數達上限、1045 帳號密碼錯誤、1049 資料庫不存在
    1050~1065物件已存在/不存在/語法1050 資料表已存在、1051 資料表不存在、1054 欄位不存在、1065 空 SQL
    1081~1116網路/資源/資料表滿1081 Socket 失敗、1114 表滿、1116 開啟表過多
    1129~1161權限/語法/網路逾時1130 連線權限、1146 表不存在、1149 語法錯誤、1158-1161 網路讀寫逾時
    1062/1169/1177/1180/1181重複鍵/鎖定/事務1062 Duplicate entry、1205 Lock wait timeout、1180 Commit 失敗、1181 Rollback 失敗
    1203~1235連線/資源/權限/版本1203 使用者連線達上限、1216/1217 FK 約束失敗、1226 資源超限、1227 權限不足、1235 版本過低

    高頻錯誤深度解析與解決方案

    1040: Too many connections

    • 原因:同時連線數達 max_connections (預設 151)。
    • 解決:SET GLOBAL max_connections = 500; (配合 open_files_limit、記憶體評估);檢查應用連線池洩漏;啟用 thread_pool (Percona/MySQL 8.0+)。

    1045: Access denied

    • 原因:帳號/密碼錯誤、主機不匹配 (如 user@'%' vs user@'localhost')、skip-grant-tables 未重新載入權限。
    • 解決:FLUSH PRIVILEGES;、確認 mysql.user Host 欄位、重設密碼 ALTER USER 'user'@'host' IDENTIFIED BY 'pwd';。

    1062: Duplicate entry for key 'PRIMARY' / 'uk_name'

    • 原因:唯一鍵/主鍵衝突。
    • 解決:INSERT IGNORE / ON DUPLICATE KEY UPDATE / 應用層去重 / 檢查自增種子 SHOW TABLE STATUS。

    1114: Table is full

    • 原因:MyISAM 達 4GB/2GB 檔案限制、InnoDB 表空間滿、磁碟滿、innodb_data_file_path 無 autoextend。
    • 解決:轉 InnoDB、擴充表空間、清理空間、分區表。

    1205: Lock wait timeout exceeded

    • 原因:交易持有鎖超過 innodb_lock_wait_timeout (預設 50s)。
    • 解決:縮短交易範圍、優化索引減少掃描鎖、調大逾時、檢查長時間未提交交易 SHOW ENGINE INNODB STATUS。

    1216/1217: Foreign key constraint fails

    • 1216:子表新增/修改 FK 值,父表無對應主鍵。
    • 1217:父表刪除/修改主鍵,子表仍有引用。
    • 解決:先維護父表、或暫時 SET FOREIGN_KEY_CHECKS=0; (謹慎)、使用 ON DELETE CASCADE/SET NULL。

    排查通用步驟

    1. 記錄完整錯誤訊息 (代碼 + 文字)。
    2. SHOW ENGINE INNODB STATUS 查看最近死鎖/鎖等待。
    3. SHOW PROCESSLIST 找長時間查詢/睡眠連線。
    4. 檢查錯誤日誌 /var/log/mysql/error.log。
    5. 驗證參數設定 SHOW VARIABLES LIKE 'max_connections'; 等。

    結語

    MySQL 錯誤代碼雖多,但高頻者集中在 **連線數、權限、重複鍵、鎖逾時、外鍵、磁碟空間**。建立對照表並熟悉對應排查指令,可大幅縮短事故處理時間。

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