• ADADADADAD

    【MySQL】Host is blocked because of many connection errors[ mysql数据库 ]

    mysql数据库 时间:2024-12-03 12:13:47

    作者:文/会员上传

    简介:

    【问题描述】:
    应用服务器那边发现连不到数据库,查看日志发现报错:

    selectSQL get mysql connection failed, err:Error: ER_HOST_IS_BLOCKED Host 'xx.xx.xx.xx' is blocked

    以下为本文的正文内容,内容仅供参考!本站为公益性网站,复制本文以及下载DOC文档全部免费。

    【问题描述】:
    应用服务器那边发现连不到数据库,查看日志发现报错:

      selectSQL get mysql connection failed, err:Error: ER_HOST_IS_BLOCKED Host 'xx.xx.xx.xx' is blocked because of many connection errors ……

    【解决方案】:
    读了日志发现该错误与connection errors有关,查了一下max_connect_errors参数:
      SELECT @@global.max_connect_errors;
      +-----------------------------+
      | @@global.max_connect_errors |
      +-----------------------------+
      | 10 |
      +-----------------------------+
      1 row in set (0.00 sec)
    原来是10,果然太小了。
    查了一下5.5文档,官方给出了解决方案:

    However, once a host is blocked, flushing the host cache is the only way to unblock it.


    在mysql中执行:
      mysql>FLUSH HOSTS;
    或执行指令:
      mysqladmin flush-hosts
    即可通过【flushing the host cache】来解锁这个“host”


    然后调大连接错误数,避免再次发生此类问题:(为Dynamic Variable)
      mysql> SET @@global.max_connect_errors=100000;

    最后添加/修改my.cnf,增加:
      max_connect_errors = 100000

    后来继续查了一下5.5的文档发现,其默认值就为10,而5.6.6以后的版本中,该默认值已经调到了100。

    参考文档:
    MySQL 5.5 Reference Manual /Chapter 5 MySQL Server Administration /5.1.1 Server Option and Variable Reference


    作者微信公众号(持续更新)

    【MySQL】Host is blocked because of many connection errors.docx

    将本文的Word文档下载到电脑

    推荐度:

    下载
    热门标签: hostbecausemany