SHOW PROCESSLIST;
+----+--------------------+-----------------+------+---------+------+-------+------+
| Id | User | Host | db | Command | Time | State | Info |
+----+--------------------+-----------------+------+---------+------+-------+------+
|... | unauthenticated user | 192.168.0.4:49607 | NULL | Connect | ... | login | NULL |
|... | unauthenticated user | 192.168.0.4:49608 | NULL | Connect | ... | login | NULL |
...
大量unauthenticated user卡在login狀態,佔滿max_connections導致正常業務拒連。
MySQL**預設對每個新連接做DNS反向解析**(解析客戶端IP→主機名),用於權限表Host列匹配。**DNS服務器故障/超時**導致解析卡死,連接堆積在認證階段。
配置文件[mysqld]段添加:
skip-name-resolve
或啟動參數--skip-name-resolve。**副作用**:權限表Host列**不能用主機名**,只能用IP/通配符%。若業務已用%授權,**零影響**。
/etc/hosts添加常連客戶端IP→主機名映射,繞過DNS服務器。適用於**少量固定客戶端**場景。
重啟後SHOW PROCESSLIST不再出現unauthenticated user堆積,新連接秒級認證通過。
skip-name-resolve也是**公認MySQL性能優化首選項**之一,省去網絡RTT與解析失敗風險。