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'


早上打開瀏覽器准備登陸某個系統,發現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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM