zoukankan      html  css  js  c++  java
  • ERROR 1129 (HY000) unblock with 'mysqladmin flush-hosts'

    一、错误解释


    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)。

    mysql内查看错误连接数量:

    mysql> use performance_schema;
    mysql> select * from host_cacheG

    如果 COUNT_HANDSHAKE_ERRORS 数量 大于 SUM_CONNECT_ERRORS 那么大概可以确定就是网络问题。

    3、根本解决办法

    解决ERROR 1129 (HY000)的方法是执行flush host或者 mysqladmin flush-hosts,其目的是为了清空host cache里的信息,那是不是说不使用host cache就可以了?使host cache不生效(禁用 MySQL DNS 查找)的方式有如下两种:

    A、设置 host_cache_size 为0

    mysql> set global host_cache_size=0;

    B、配置skip-name-resolve 

    编辑mysql配置文件 my.cnf

    vi /etc/my.cnf

    在 [mysqld] 下面添加 下面这一行

    skip-name-resolve

     

     

  • 相关阅读:
    RESTful API 设计最佳实践
    Linux给目录创建软链接的技巧
    KVM资源划分分配技巧
    SpringBoot无法启动,Process finished with exit code 0
    Shell中EOF内容转义
    TeamViewer运行在Windows Server 2008下连接时错误提示:正在初始化显示参数
    CentOS使用chkconfig增加开机服务提示service xxx does not support chkconfig的问题解决
    Redis哨兵模式主从同步不可以绑定127.0.0.1或者0.0.0.0,不然无法进行主从同步
    Spring Boot项目的Logback配置文件使用yaml格式
    Shell脚本里的双冒号是什么意思
  • 原文地址:https://www.cnblogs.com/easyidea/p/15009534.html
Copyright © 2011-2022 走看看