ERROR 1129 (HY000): Host 'x.x.x.x' is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts'
阿新 • • 發佈:2021-07-14
ERROR 1129 (HY000): Host 'x.x.x.x' is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts'
mysql修改最大錯誤連線數。
B、錯誤連線測試
一、錯誤解釋
ERROR 1129 (HY000): Host 'x.x.x.x' is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts'
該IP有過多的錯誤連線,被mysql被阻止繼續連線了。
二、錯誤原因 (Only)
本質原因是因為同一個IP在短時間內產生太多中斷的資料庫錯誤連線(超過max_connect_errors的最大值)而導致的。
三、產生原因
1、服務配置錯誤:
連線MySQL失敗之後不斷的重連,致使錯誤連線數飆升,超過最大值,使得同伺服器的其他服務不能再繼續連線MySQL。
2、網路超時:
MySQL客戶端與資料庫建立連線需要發起三次握手協議,正常情況下,這個時間非常短,但是一旦網路異常,網路超時等因素出現,就會導致這個握手協議無法完成,MySQL有個引數connect_timeout,它是MySQL服務端程序mysqld等待連線建立完成的時間,單位為秒。如果超過connect_timeout時間範圍內,仍然無法完成協議握手話,MySQL客戶端會收到異常致使錯誤連線增加。
3、其他原因:
指令碼或者Shell命令在不斷的使用錯誤的MySQL使用者名稱和密碼連線MySQL。
四、解決辦法
1、修改 max_connect_errors 的值
mysql> use performance_schema; mysql> show variables like 'max_connect_errors'; mysql> set global max_connect_errors = 10000;
2、檢查網路超時
ping 一下服務所在環境和mysql資料庫之間的網路,如果延時大於10s基本沒救,建議重啟伺服器(如果服務是部署在docker裡面的還建議重啟docker)。
3、根本解決辦法
找到致使錯誤連線數上升的原因:
A、不斷檢視錯誤連線數量
mysql> use performance_schema; mysql> select * from host_cache\G
B、錯誤連線測試
mysql -h 192.168.232.254 -u錯誤的使用者名稱 -p錯誤的密碼