1. 程式人生 > >遠端連線伺服器資料庫報錯:Host ‘XXXXXX’ is blocked because of many connection errors

遠端連線伺服器資料庫報錯:Host ‘XXXXXX’ is blocked because of many connection errors

一、我遇到的問題描述

    使用Navicat for mysql連線公司的伺服器資料庫,報錯:Host ‘XXXXXX’ is blocked because of many connection errors

二、出現錯誤原因

    同意ip在短時間內產生太多(超過mysql資料庫max_connection_errors的最大值)終端的資料庫連線而導致的阻塞;

三、解決方案(根據實際情況來選擇解決方案):

    1、可以更改max_connection_errors的值,即提高允許的max_connection_errors的數量

        (1)首先檢視該屬性設定為多大:命令:show global variables like '%max_connect_errors%';

        

    (2)然後修改該屬性

        

    (3)再次檢視

        

    (4)如果需要永久解決問題

        如果需要永久生效,得去修改mysql配置檔案裡相應屬性。可能配置檔案裡沒有這個屬性,需要自己手動新增

        

    (5)注意:

        當客戶端連線服務端超時(超過connect_timeout), 服務端就會給這個客戶端記錄一次error,當出錯的次數達到max_connect_errors的時候,這個客戶端就會被鎖定。所以根據業務來儘量把這個值設定大一點,mysql預設值為10,我們可以根據具體需要設定大一點,這裡設定為1000.(並非越大越好,越大被攻擊時安全性越低)

    2、使用清楚快取的方法,這樣就會把計數清理掉,

進入mysql控制檯,執行:flush hosts;

        

     3、換一臺電腦,登入資料庫,執行:flush hosts;