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


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

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

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

点击(此处)折叠或打开 ERROR 1129 (HY000): Host ‘x.x.x.x’ is blocked because ofmany connection errors; unblock with ‘mysqladmin flush-hosts’且开发的同事尝试修改了max_connect_errors的参数;

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

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

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

中间还查看了一次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-ho开发云主机域名st-cache才能关闭;

处理方式:
最终是协商了重启的时间, 在开发机的MySQL配置文件加上了skip-host-cache来彻底关闭这个cache, 然后随开发们乱搞去吧……╮(╯_╰)╭
上述内容就是MySQL中host is blocked, flush hosts的示例分析,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注开发云行业资讯频道。

相关推荐: 怎么在Navicat中远程连接 MySQL

怎么在Navicat中远程连接 MySQL?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。1首先我们需要更改 3306端口,查看3306 端口是否对外开放,MySQL 默认情况下是不开放对外访问…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 06/22 10:16
下一篇 06/22 10:16

相关推荐