遇到 MySQL 錯誤碼(如 1062、1105、1267、13)需快速知曉含義。本文介紹兩種官方權威查詢方式:在線文檔與本地 perror 命令,並附帶常見錯誤碼速查表。
MySQL 8.0 Error Messages Reference
覆蓋 Server、Client、Global、SQLState 所有錯誤碼,含詳細描述與處理建議。
MySQL 安裝包自帶 perror 工具,可直接翻譯系統/存儲引擎錯誤碼。
# 查找 perror 路徑 which perror # /usr/bin/perror # 或 find 定位 find / -name perror # /opt/mysql/mysql-5.5.39-linux2.6-i686/bin/perror # /usr/bin/perror # 使用示例 perror 13 # OS error code 13: Permission denied perror 1062 # MySQL error code 1062: Duplicate entry '%s' for key '%s' perror 1105 # MySQL error code 1105: Unknown error
| 錯誤碼 | 含義 | 典型場景 |
|---|---|---|
| 1062 | Duplicate entry | 主鍵/唯一鍵衝突、報錯注入回顯 |
| 1045 | Access denied | 用戶名/密碼/主機不匹配 |
| 1049 | Unknown database | 庫不存在 |
| 1050 | Table already exists | 建表重名 |
| 1051 | Unknown table | 表不存在 |
| 1064 | Syntax error | SQL 語法錯誤 |
| 1105 | XPATH syntax error | ExtractValue/UpdateXml 注入 |
| 1146 | Table doesn't exist | 表丟失/名稱大小寫敏感 |
| 1205 | Lock wait timeout | 行鎖等待超時 |
| 1213 | Deadlock found | 死鎖回滾 |
| 13 | Permission denied | 文件/目錄權限不足 (errno 13) |
| 28 | No space left | 磁盤滿 |
perror 翻譯)perror 秒級定位**SQLException.getErrorCode() 映射業務錯誤碼