mysql連接錯誤:1129 Host is blocked,many connection errors

數據庫連接報錯:


image.png

百度后,知道是數據庫連接太多,中間發生連接斷開。在系統變量:max_connect_errors設置了允許中斷的次數,超過了這個次數,mysql就會報如上錯誤,并拒絕新的連接(相當于拉黑了),直到執行mysqladmin flush-hosts命令或者FLUSH_HOSTS命令。

解決方法:
默認max_connect_errors 是10,但可動態調。不過調max_connect_errors 不是根本解決辦法。
首先得看tcp/ip連接沒問題,就是說網絡沒問題(還沒到mysql那呢,在上述連mysql流程的第一步)。查看網絡問題可用netstat(netstat咋用,又一篇博客)。
然后看應用層程序里寫的對不對,這個不容易發現,可能是代碼里面有哪里沒有寫好,連接到一半就關閉連接了。

首先我檢查了一下自己的網絡連接,確認聯網沒問題后,嘗試修改Mysql配置。
根據如上方法,需要對遠程連接的數據庫配置進行修改:

  1. 使用命令行遠程連接mysql
    首先需要自己的電腦上安裝有mysql(有mysql驅動,能使用mysql命令),進入命令行后,使用:mysql -h ip -u root -p 3306來遠程連接數據庫
  2. 在數據庫命令行中,通過show variables like '%max_connection_errors%'命令查看數據庫的最大連接設置,然后通過修改最大連接數來解決問題,命令:set global max_connect_errors = 1000,修改完成后用show variables like '%max_connection_errors%'命令檢查一下是否修改成功。
    到了這一步就已經可以順利的連接到數據庫了。
  3. 如第二步,只是治標不治本的方法,下面這個方法比較好:
    通過命令whereis mysqladmin查找到mysqladmin在哪個目錄下,在查找到的目錄下使用命令修改:/usr/bin/mysqladmin flush-hosts -h192.168.1.1 -P3308 -uroot -prootpwd;
    同理,如上命令也可以在數據庫中進行修改:flush hosts;
    另外,配置有master/slave的主從數據庫,需要把主庫和從庫都修改一遍。
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容