首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL 主機被封鎖解決方案:max_connect_errors 與 flush-hosts 完整指南

     編輯:MySQL 資料庫相關知識

錯誤訊息

Host 'host_name' is blocked because of many connection errors.
Unblock with 'mysqladmin flush-hosts'

觸發機制

  • 同一主機短時間內大量連線失敗(預設 10 次),mysqld 判定異常並封鎖該 IP。
  • 計數器由系統變數 max_connect_errors 控制。

立即解除封鎖

mysqladmin flush-hosts
-- 或
FLUSH HOSTS;

調整容忍閾值

啟動參數或運行時動態調整:

mysqld_safe --max_connect_errors=10000 &
-- 或
SET GLOBAL max_connect_errors = 10000;

根本原因排查(調大閾值非長久之計)

  1. 網路不穩:檢查 TCP/IP 連線、防火牆、交換器。
  2. 客戶端程式錯誤:連線池耗盡、重試邏輯過激、憑證錯誤。
  3. 惡意掃描/暴力破解:配合 fail2ban、iptables 封鎖來源 IP。

最佳實踐

  • 預設 10 通常足夠;頻繁觸發必須修正客戶端或網路問題。
  • 監控 Aborted_connects 狀態變數,設定告警。
  • 生產環境建議啟用 SSL 加密連線,降低中間人攻擊導致的連線錯誤。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved