Mysql數據庫:Host 'xxx.xxx.xxx.xxx' is blocked because of many connection errors問題處理

一、問題如下

  Host 'xxx.xxx.xxx.xxx' is blocked because of many connection errors

  

  這個錯誤是因爲在短時間內頻繁地對數據庫進行錯誤連接,觸發了數據庫的保護機制,鎖住了該ip對數據庫的訪問權限。(錯誤連接可能是由錯誤的用戶名、密碼、配置的鏈接後綴或者白名單等引起,這個需要自己檢查確認)

二、問題處理

  1、首要的肯定是要檢查並矯正數據庫的信息配置是否正確了,如果不正確的話即便不報這個錯也訪問失敗,應該確認無誤後再進行解鎖流程。

  2、因爲之前使用錯誤的信息進行了頻繁的錯誤連接,可能會被當成惡意攻擊處理了,拉進了黑名單。

  所以在配置調整正確之後,依舊無法訪問,此時就需要給ip進行解鎖。

  數據庫查詢中執行以下語句:

flush hosts;

  清理禁用ip的緩存,這樣就放開該ip的訪問權限了。

  不過這也是治標不治本的方法,因爲根源在錯誤的數據庫鏈接上,如果沒有矯正的話,在一段時間後錯誤連接數超過了設定的閾值,還是會出現這樣的問題。

  如果只是短時間調試使用的話,這種方法用來處理還是可行的。

  下面是另一個配置,調整錯誤鏈接數的最大閾值,這樣可以拉大報錯的時間間隔。

  在數據庫查詢中執行如下語句:

show variables like 'max_connect_errors';

  得到的結果如下:

  

  這個是調整之後的值,一般沒有調整過的可能比較小,調整該數值使用以下命令:

set global max_connect_errors = 10000;

  這裏是一次性的配置,不是永久的,因爲這種處理方法一般都是短時適用,沒必要調整配置文件去修改永久的數據

  使調整的配置生效:

flush privileges

  

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章