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

MySQL 錯誤代碼中文對照表:100+ 高頻錯誤訊息、成因與解決方向

     編輯:MySQL 資料庫相關知識

連線與權限類(最高頻)

錯誤碼訊息典型成因解決方向
1040Too many connections達到 max_connections 限制增大參數、優化慢查詢、連線池複用
1042Bad host nameDNS 解析失敗、主機名拼寫錯誤檢查 /etc/hosts、DNS、用 IP 直連
1043Invalid connection網路中斷、防火牆、MySQL 未啟動檢查服務、端口、防火牆、網路通道
1044Access denied for user to database用戶無該庫權限GRANT ... ON db.* TO user@host
1045Access denied (user/pass wrong)密碼錯誤、用戶不存在、主機不匹配重置密碼、檢查 Host 欄、FLUSH PRIVILEGES
1130Host not allowed to connect用戶 Host 欄位不匹配(如 '%' vs 'localhost')授權正確 Host、刪除匿名用戶
1133User does not exist用戶確實不存在CREATE USER + GRANT
1226User resource limit exceeded超過 MAX_QUERIES_PER_HOUR 等配額調整配額、優化應用查詢頻率
1227Access denied; need SUPER privilege操作需 SUPER 權限授予 SUPER 或改用低權限方案

資料庫/表/欄位結構類

錯誤碼訊息典型成因解決方向
1005Can't create table (errno: 150)外鍵定義錯誤(引用表/欄位不存在、型別不匹配、無索引)檢查 REFERENCES 定義、確保被引用欄位有索引
1007Database exists重複 CREATE DATABASEIF NOT EXISTS 或先 DROP
1008Database doesn't exist操作不存在的庫確認名稱、SHOW DATABASES
1050Table already exists重複 CREATE TABLEIF NOT EXISTS
1051Unknown table表不存在確認名稱、SHOW TABLES
1054Unknown column欄位不存在確認拼寫、DESC table、遷移腳本順序
1065Empty query執行空 SQL檢查應用 SQL 建構邏輯
1146Table doesn't exist同 1051同 1051
1147Undefined user table access權限表損壞mysql_upgrade、重建授權表

資料完整性與約束類

錯誤碼訊息典型成因解決方向
1022Can't write; duplicate key唯一鍵/主鍵衝突檢查業務邏輯、INSERT IGNORE/ON DUPLICATE KEY UPDATE
1048Column cannot be nullNOT NULL 欄位插入 NULL應用層非空驗證、設 DEFAULT
1062Duplicate entry for key同 1022,含具體鍵值同 1022
1169Can't update; duplicate keyUPDATE 導致唯一鍵衝突檢查更新值唯一性
1216FK constraint fails (child)子表插入/更新引用不存在的父鍵先插入父表、檢查級聯動作
1217FK constraint fails (parent)父表刪除/更新被子表引用的鍵先處理子表、設 ON DELETE CASCADE
1263Column set to default; NULL to NOT NULL隱式轉換導致 NULL 寫入非空欄位顯式指定值、嚴格模式 STRICT_TRANS_TABLES
1264Out of range value for column數值超出欄位型別範圍擴大型別、應用層範圍校驗
1265Data truncated for column字串超長/數值精度溢位被截斷擴大欄位、啟用嚴格模式報錯而非截斷

資源與系統類

錯誤碼訊息典型成因解決方向
1021Disk full磁碟空間耗盡清理日誌、擴容、歸檔冷數據
1037Out of memory記憶體不足優化參數、增加實體記憶體、限制併發
1038Out of sort memorysort_buffer_size 不足增大參數、優化 ORDER BY
1114The table is fullMyISAM 達到 4GB/2GB 限制、InnoDB 表空間滿轉 InnoDB、擴充表空間、分區表
1116Too many open tablestable_open_cache 過小增大參數、open_files_limit 配合
1158-1161Network read/write error/timeout網路不穩、MTU、防火牆、大封包檢查網路、增大 net_read_timeout/net_write_timeout/max_allowed_packet
1205Lock wait timeout exceeded行鎖等待超過 innodb_lock_wait_timeout (預設 50s)優化事務長度、索引、增大超時

複寫與程式碼類

錯誤碼訊息典型成因解決方向
1067Process terminated unexpectedly啟動失敗(配置錯誤、資料損壞、權限、SELinux)查看錯誤日誌、mysqld --verbose --help 驗證配置
1180Commit failed事務提交失敗(磁碟、鎖、複寫衝突)查看具體錯誤日誌
1181Rollback failed事務回滾失敗同上
1203User max connections reached單用戶達到 max_user_connections增大限制、連線池複用
1235MySQL version too old for feature功能需較高版本(如 CTE 需 8.0、Window Function 需 8.0)升級版本、改用相容寫法
1317Query execution was interruptedKILL QUERY 或 max_execution_time 觸發優化慢查詢、調整超時

快速定位三步法

  1. SHOW VARIABLES LIKE 'lc_messages_dir'; SHOW VARIABLES LIKE 'lc_messages'; 確認語言包
  2. perror 1062(系統命令)快速查錯誤碼含義
  3. 錯誤日誌 /var/log/mysql/error.log 看完整堆疊
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved