首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

MySQL "unauthenticated user" 連線堆積診斷:從 DNS 反解析到應用層異常的全鏈路排查

     編輯:MySQL 綜合教學

MySQL "unauthenticated user" 大量堆積:現象、成因與分層解決方案

投票系統訪問緩慢,PHP 高 CPU,MySQL 正常。SHOW FULL PROCESSLIST 發現大量:

Id    User                 Host              db    Command   Time  State                  Info
13012 unauthenticated user  x.x.x.x:2501     None  Connect   0     Reading from net       NULL
10056 unauthenticated user  x.x.x.x:2805     None  Connect   0     Reading from net       NULL
10311 unauthenticated user  x.x.x.x:2306     None  Connect   0     Writing to net         NULL
10326 unauthenticated user  x.x.x.x:2715     None  Connect   0     login                  NULL

核心含義

"unauthenticated user" 表示連線已建立 TCP,但 MySQL 尚未完成認證流程 (讀取客戶端用戶名/密碼包、驗證、權限檢查)。大量堆積意味著認證階段卡住或異常連線湧入。

常見成因與對應解決

1. DNS 反解析延遲 (最經典)

MySQL 預設對客戶端 IP 做反向 DNS 查詢 (PTR 記錄) 以匹配 user@host 權限。DNS 服務器慢/不可達導致認證阻塞。

# 解決:my.cnf 禁用 DNS 解析
[mysqld]
skip-name-resolve
# 重啟生效。注意:權限表 host 欄位不再支援主機名,需全用 IP

2. 應用層異常連線風暴

  • 投票刷票攻擊 → 大量短連線衝擊
  • PHP-FPM 進程異常/重啟 → 連線未正常關閉
  • 連線池配置錯誤 (max_connections 過大、無限創建)
# 解決:應用層加驗證碼、限流、修正連線池
# PHP 端:persistent connections (pconnect) 慎用,易洩漏

3. 客戶端驅動/協議不兼容

  • 舊版驅動使用 old_password 握手,MySQL 8.0+ 預設 caching_sha2_password
  • JDBC/PHP PDO/MySQLi 版本不匹配
# 解決:統一驅動版本、配置 default_authentication_plugin=mysql_native_password

4. 網路/防火牆干擾

  • 中間設備 (LB、防火牆) 空閒連線切斷,客戶端未感知重連
  • TCP 半連接隊列溢出 (見前文連線逾時分析)

分層排查流程

  1. 即時緩解:skip-name-resolve + 重啟 PHP-FPM/MySQL
  2. 流量分析:tcpdump -i eth0 port 3306 -w mysql.pcap 抓包分析握手階段耗時
  3. 應用審計:檢查 PHP 慢日誌、訪問日誌識別異常端點/IP
  4. 安全加固:WAF 限流、驗證碼、IP 黑名單
  5. 架構優化:ProxySQL 連線池吸收突發、讀寫分離降低主庫壓力

驗證指標

  • SHOW GLOBAL STATUS LIKE 'Aborted_connects':認證階段中斷計數
  • SHOW GLOBAL STATUS LIKE 'Connection_errors_accept':accept 階段錯誤
  • Processlist 中 unauthenticated user 數量歸零
  • PHP CPU 回落正常、響應時間恢復

總結

"unauthenticated user" 是癥狀而非病因。skip-name-resolve 只能治標 (解決 DNS 阻塞);根治需應用層連線管理規範 + 架構層連線池緩衝 + 安全層異常流量清洗三位一體。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved