天天看點

mysql 連接配接出錯 'mysqladmin flush-hosts'

環境說明:

内網測試伺服器192.168.18.251 為WEB伺服器,安裝了mysql; 内網音視訊轉碼伺服器192.168.18.253安裝了轉碼工具,其上/www/attachment挂載到WEB 的/webdev/attachment上實作對WEB上音視訊檔案的轉碼處理,某日發現轉碼不能成功,在轉碼伺服器上手動執行轉碼腳本檔案後報錯,詳細資訊如下:

錯誤大體是這樣:

ERROR 1129 (00000): Host 'XXXXXX' is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts'

查了下資料 --說明mysqld已經得到了大量(max_connect_errors)的主機'hostname'的在中途被中斷了的連接配接請求。在 max_connect_errors次失敗請求後,mysqld認定出錯了(象來自一個黑客的攻擊),并且阻止該站點進一步的連接配接,直到某人執行指令 mysqladmin flush-hosts。

預設地,mysqld在10個連接配接錯誤後阻塞一台主機。你可以通過象這樣啟動伺服器很容易地調整它: set global max_connect_errors=1000;

注意,對給定的主機,如果得到這條錯誤消息,你應該首先檢查該主機的TCP/IP連接配接有沒有問題。如果你的TCP/IP連接配接不在運作,增加max_connect_errors變量的值對你也不會有幫助! 

××××××××××××××××××××××××××××××××××××××××××××××××××××××××

另一篇相關介紹:

Mysql報錯 mysqladmin flush-hosts

2011-11-26

Tomcat 報出如下錯誤: 

java.sql.SQLException: null,  message server: "Host ""*****"" is blocked because of many connection errors; unblock with ""mysqladmin flush-hosts""" 

解決辦法: 

 mysqladmin     flush-hosts 

原因: 

mysql中預設的max_connect_errors是10,因為連接配接失誤,造成這個數值高于10,當在接受連接配接的時侯就被鎖住了, 并阻止主機的進一步連接配接請求。 

可以将這個值改的稍微高一些。 

shell> mysqld_safe --max_connect_errors=10000 

注意,對給定的主機,如果得到這條錯誤消息,你應該首先檢查該主機的TCP/IP連接配接有沒有問題。如果你的TCP/IP連接配接不在運作,增加max_connect_errors變量的值對你也不會有幫助!  

=========================================

附:Max_connect errors說明

max_connect_errors是一個MySQL中與安全有關的計數器值,它負責阻止過多嘗試失敗的用戶端以防止暴力破解密碼的情況。max_connect_errors的值與性能并無太大關系。

預設情況下,my.cnf檔案中可能沒有此行,如果需要設定此數值,手動添加即可。

參數格式

​1​

​max_connect_errors = 10​

修改方法

如果系統是CentOS、Debian等,則配置檔案可能位于 /etc/my.cnf 。打開此檔案

​1​

​[root@www ~]​

​​

​# vi /etc/my.cnf​

然後在[mysqld]配置節中加入上述語句即可。

配置說明

當此值設定為10時,意味着如果某一用戶端嘗試連接配接此MySQL伺服器,但是失敗(如密碼錯誤等等)10次,則MySQL會無條件強制阻止此用戶端連接配接。

如果希望重置此計數器的值,則必須重新開機MySQL伺服器或者執行

​1​

​Mysql> FLUSH—HOSTS;​

​指令。

當這一用戶端成功連接配接一次MySQL伺服器後,針對此用戶端的max_connect_errors會清零。

影響與錯誤形式

如果max_connect_errors的設定過小,則網頁可能提示無法連接配接資料庫伺服器;而通過SSH的mysql指令連接配接資料庫,則會傳回

ERROR 1129 (00000): Host ‘gateway’ is blocked because of many connection errors; unblock with ‘mysqladmin flush-hosts’錯誤。

功能與作用

一般來說建議資料庫伺服器不監聽來自網絡的連接配接,僅僅通過sock連接配接,這樣可以防止絕大多數針對mysql的攻擊;如果必須要開啟mysql的網絡連接配接,則最好設定此值,以防止窮舉密碼的攻擊手段。