早上打開瀏覽器准備登陸某個系統,發現Error 404--Not Found,有點奇怪,這個服務器應該沒人用了才對,然后到weblogic后台去看日志,報如下錯誤:
“Could not create pool connection. The DBMS driver exception was: null, message from server: "Host '192.168.XX.XX' is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts'”
首先我使用的是mysql數據庫
到網上搜羅了一下相關錯誤,發現是因為“同一個ip在短時間內產生太多(超過mysql數據庫max_connection_errors的最大值)中斷的數據庫連接而導致的阻塞;”
既然知道了原因,就好解決了:提高max_connection_errors的值或者清除緩存
1.清除緩存
cmd窗口遠程連接數據庫,執行flush hosts;

2.提高max_connection_errors的值
首先查看該屬性設置為多大
命令:show global variables like '%max_connect_errors%';

當客戶端連接服務端超時(超過connect_timeout), 服務端就會給這個客戶端記錄一次error,當出錯的次數達到max_connect_errors的時候,這個客戶端就會被鎖定。所以根據業務來盡量把這個值設置大一點,我們可以根據具體需要設置大一點,這里設置為1000.(並非越大越好,越大被攻擊時安全性越低)。
使用命令:set global max_connect_errors=1000;
如果需要永久生效,得去修改mysql配置文件里相應屬性。可能配置文件里沒有這個屬性,需要自己手動添加:

參考文章:https://jingyan.baidu.com/album/9f7e7ec087dcbe6f2815542d.html
