生產環境報警往往伴隨神秘錯誤碼。本文匯總高頻錯誤碼、現象、根因與一鍵修復命令,構建 DBA 急救手冊。
| 錯誤碼 | SQLSTATE | 典型現象 | 根因 | 快速修復 |
|---|---|---|---|---|
| 1045 | 28000 | Access denied for user | 密碼錯誤/主機不匹配/權限不足 | 核對密碼、SELECT User,Host FROM mysql.user、FLUSH PRIVILEGES |
| 1062 | 23000 | Duplicate entry 'x' for key 'PRIMARY' | 主鍵/唯一鍵衝突 | 業務去重、INSERT IGNORE/ON DUPLICATE KEY UPDATE、檢查自增值 |
| 1114 | HY000 | The table 'x' is full | MyISAM 超過 4GB/磁盤滿/InnoDB 表空間耗盡 | df -h、ALTER TABLE ... MAX_ROWS=、擴容/清理/添加數據文件 |
| 1129 | HY000 | Host 'x' is blocked | 連接錯誤超過 max_connect_errors | mysqladmin flush-hosts、調大閾值、排查應用連接邏輯 |
| 1205 | HY000 | Lock wait timeout exceeded | 行鎖等待超過 innodb_lock_wait_timeout | 優化長事務、檢查無索引 UPDATE/DELETE、SHOW ENGINE INNODB STATUS 分析 |
| 1213 | 40001 | Deadlock found when trying to get lock | 死鎖(循環等待) | 統一訪問順序、縮短事務、innodb_deadlock_detect=ON、應用重試邏輯 |
| 2002 | HY000 | Can't connect to local MySQL server through socket | 服務未啟動/socket 路徑錯/權限不足 | systemctl status mysqld、ls -l /var/run/mysqld/、檢查 my.cnf socket |
| 2006/2013 | HY000 | MySQL server has gone away / Lost connection | 查詢超時/封包過大/服務重啟/網絡抖動 | 調大 wait_timeout/max_allowed_packet、連接池驗證機制、排查 OOM Killer |
| 1819 | HY000 | Your password does not satisfy the current policy requirements | 密碼策略 validate_password 不滿足 | 提高密碼強度或 SET GLOBAL validate_password.policy=LOW |
| 3167 | HY000 | TokuFT file system space is really low | TokuDB 磁盤空間低於 tokudb_fs_reserve_percent | 釋放磁盤空間或 SET GLOBAL tokudb_fs_reserve_percent=1(需重啟) |
-- 查看當前值
SHOW VARIABLES LIKE 'tokudb_fs_reserve_percent';
-- 默認 5%,即保留 5% 磁盤空間不給 TokuDB 使用
-- 修改(靜態參數,需重啟)
# my.cnf [mysqld]
tokudb_fs_reserve_percent = 1
-- 或臨時繞過(僅限緊急):
# 1. 刪除大文件騰出空間
# 2. 重啟服務自動恢復寫入
tail -100 /var/log/mysqld.log 獲取完整堆疊SHOW ENGINE INNODB STATUS\G 分析鎖、事務、內存pt-query-digest 分析報錯時間窗口內的慢 SQLmax_connect_errors = 100000 避免誤封禁max_allowed_packet = 256M 防大封包斷連innodb_lock_wait_timeout = 50 平衡等待與死鎖檢測validate_password.policy = MEDIUM 安全與易用平衡Threads_connected > 80% max_connections、Innodb_buffer_pool_wait_free > 0、Aborted_connects 突增建立錯誤碼 → 根因 → 修復 → 預防的閉環知識庫,將故障處理從「查文檔」變為「查手冊」,是 DBA 從初級進階高級的關鍵里程碑。