mysql> SHOW VARIABLES LIKE 'skip_%';
+-----------------------+-------+
| Variable_name | Value |
+-----------------------+-------+
| skip_external_locking | ON |
| skip_name_resolve | OFF | <-- 關鍵:啟用 DNS 反向解析
| skip_networking | OFF |
| skip_show_database | OFF |
+-----------------------+-------+
MySQL 默認對每個新連接執行 DNS 反向解析(IP → 主機名),用於權限表 mysql.user 的 Host 欄位匹配。海外節點 DNS 解析延遲高、或無 PTR 記錄導致超時重試,直接卡住握手階段。
[mysqld]
skip_name_resolve
mysql> SHOW VARIABLES LIKE 'skip_name_resolve';
+-------------------+-------+
| Variable_name | Value |
+-------------------+-------+
| skip_name_resolve | ON |
+-------------------+-------+
| 副作用 | 應對 |
|---|---|
權限表 mysql.user 不再支援主機名,僅能用 IP/通配符 % | 將現有 Host='hostname' 賬號改為 Host='IP' 或 Host='%' |
SHOW PROCESSLIST 的 Host 列顯示 IP 而非主機名 | 習慣適應,排查時直接用 IP 關聯防火牆/應用日志 |
skip_name_resolve=ON:消除 DNS 依賴,穩定連接建立延遲。IP/網段 或 %,避免主機名解析不穩定。