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的主从数据库,需要把主库和从库都修改一遍。
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容