[Warning] IP address '192.168.1.10' could not be resolved: Name or service not known
SHOW PROCESSLIST 大量顯示: | 592 | unauthenticated user | 192.168.1.10:35320 | NULL | Connect | | login | NULL |
MySQL 預設嘗試將客戶端 IP 反解析為主機名(雙向驗證),無 DNS/hosts 時阻塞等待逾時。
[mysqld] skip-name-resolve
重啟生效。副作用: 權限表 Host 欄只能用 IP 或 %,不可用主機名。
max_connections 設過大或連線洩漏。ulimit -u(max user processes)過小,參見 ERROR 1135 排查。max_connections、啟用連線池、修復應用洩漏。/etc/security/limits.d/)。DROP DATABASE xjtrace; ERROR 1010 (HY000): Error dropping database (can't rmdir './xjtrace/
資料庫目錄下存在非 MySQL 管理的檔案(如手動放入的 .txt、.sql、備份檔等),MySQL 拒絕刪除非空目錄。
# 進入資料目錄清理 rm -f /var/lib/mysql/xjtrace/*.txt /var/lib/mysql/xjtrace/*.sql # 再次執行 DROP DATABASE 即可成功
400 萬筆資料匯出秒級,匯入卻耗時 2 小時。
# 1. 先確認目標庫參數 mysql> SHOW VARIABLES LIKE 'max_allowed_packet'; -- 1048576 (1MB) mysql> SHOW VARIABLES LIKE 'net_buffer_length'; -- 16384 (16KB) # 2. 匯出時對齊參數,使用多行 INSERT mysqldump -uroot -p dbname \ -e \ --max_allowed_packet=1048576 \ --net_buffer_length=16384 \ > dump.sql
-e:啟用多行 INSERT(Extended INSERT),大幅減少 SQL 敘述數量。max_allowed_packet / net_buffer_length:與目標庫一致,避免封包分片重組開銷。同樣 400 萬筆資料,匯入時間從 2 小時縮減至幾十秒。
| 問題類別 | 核心對策 | 預防機制 |
|---|---|---|
| 網路/DNS | skip-name-resolve / 完善 /etc/hosts | 部署清單檢查項 |
| 資源耗盡 | 監控連線數/記憶體/OS 限制 | 告警閾值 + 自動擴容 |
| 操作失誤 | 資料目錄純淨化、權限最小化 | 自動化部署禁止手動放檔 |
| 效能調校 | mysqldump 參數對齊、延遲索引建立 | 標準化匯出/匯入 SOP |