一、問題如下
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