MySQL中hostisblocked,flushhosts的示例分析-创新互联

本篇文章为大家展示了MySQL中host is blocked, flush hosts的示例分析,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

成都创新互联专注于任丘企业网站建设,响应式网站,商城网站开发。任丘网站建设公司,为任丘等地区提供建站服务。全流程定制网站制作,专业设计,全程项目跟踪,成都创新互联专业和态度为您提供的服务



背景:
MySQL-5.5.41, 开发用的环境连接MySQL客户端时报错;

场景:
业务方反馈在连接MySQL的时候报错了, 且应用也在输出了一样的错误信息:

点击(此处)折叠或打开

  1. ERROR 1129 (HY000): Host 'x.x.x.x' is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts'

且开发的同事尝试修改了max_connect_errors的参数;

调整到1000以后, 再进行flush hosts, 虽然能够解决问题, 但是一分钟之后还是会报同样的错误;

分析:
引起这个问题的原因很直白, 在报错信息里面都写明了, "because of many connection errors";

然后看了一下aborted connections, 确实如描述一般, too many......

MySQL中host is blocked, flush hosts的示例分析

中间还查看了一次host的参数, 因为在5.7里面, 设置host_cache_size为0就可以避免这个问题了,

然而5.5压根就没有这个参数......_(:з」∠)_

考虑一下发生这个问题的根本原因:

host_cache中, 记录了的blocked错误, 如果这种错误的数量太多, 且在上一次成功连接之后, 这种错误的数量超过了max_connect_errors的值,
那么MySQL就会抛出这个错误, 并提示需要flush hosts;

5.7中设置size为0(动态参数), 变相的使得mysql认为blocked的数量一直是0, 所以就不会再报这种错了,

从根本原因来看, 关掉host cache也是一个解决的办法;

那么如何关掉host cache?

MySQL5.5和5.7在show variables中都没有一个明确的参数能关闭host cache,

翻了一下文档, 发现只能在启动的时候加上skip-host-cache才能关闭;

处理方式:
最终是协商了重启的时间, 在开发机的MySQL配置文件加上了skip-host-cache来彻底关闭这个cache, 然后随开发们乱搞去吧......╮(╯_╰)╭

上述内容就是MySQL中host is blocked, flush hosts的示例分析,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注创新互联-成都网站建设公司行业资讯频道。


分享名称:MySQL中hostisblocked,flushhosts的示例分析-创新互联
当前链接:http://ybzwz.com/article/jiesc.html