有没有好点的解决方案呢,以下时报错: Host ‘host_name‘ is blocked because of many connection errors. Unblock with ‘mysqladmin flush-hosts’
1
ragnaroks 2020-10-27 15:14:16 +08:00 1
出错的链接太多了,要么拉高阈值,要么定时执行如上命令行
|
2
encro 2020-10-27 16:05:15 +08:00 1
Host ‘host_name‘ is blocked
host_name 错了。。。。 应该是实际的 host name 不是字符串"host_name" |
3
lzhlzhlc123 2020-10-27 16:54:34 +08:00
上服务器登录数据库 执行命令 FLUSH HOSTS
|
4
lzhlzhlc123 2020-10-27 16:57:02 +08:00
要么有人用错误的密码疯狂连接你的数据库,要么就是你自己连接数据库的时候密码或者用户名输入错误,如果后端服务用的 tomcat,可以进 log 里面看一下 catalina.out 是不是报的数据库连接池连接失败
|
5
est 2020-10-27 17:20:44 +08:00
nginx 还可以代理 mysql ?走 tcp 代理功能么?
|
6
krisbai OP @lzhlzhlc123 感谢回复。FLUSH HOSTS 这个命令 ok 的,但是治标不治本。我们用 nginx 做的同步服务,开发的同事反馈不走代理直接走阿里的 SLB 没问题的。好像是多任务同步就会出问题,单任务正常执行,摸不着头脑。
|
8
akira 2020-10-27 18:37:16 +08:00
大概率是 2l 说的问题,
治标的话,改大 mysql 的 max_connect_errors 应该能有改善。 治本的话,还是要找出是哪个地方出错了 |
9
encro 2020-10-27 18:39:07 +08:00
我说的很明显了,因为你配置的 host 是 "host_name"而不是真实的 host name,所以 nginx 去连名字叫做"host_name"的 host,链接不上,错误次数太多,所以被 block 了,解决办法是将 host_name 修改为真实的 mysql host name,并运行 mysqladmin flush-hosts 解除屏蔽。
整个英文也是这个意思: Host ‘host_name‘ is blocked because of many connection errors. Unblock with ‘mysqladmin flush-hosts’ 主机"host_name"被屏蔽因为错误数太多,通过 ‘mysqladmin flush-hosts’解除屏蔽。 为什么会错误次数太多?无非就是因为这个 host_name 不是一个真实的 mysql 服务器名称或者 IP 地址,你需要将这个换成真实的 mysql 服务器名称或者 IP 地址。 |
11
encro 2020-10-27 18:46:22 +08:00
如果你主机名设置对了,那么就是网络链接(比如没开端口)或者 dns 解析问题(比如没有配置正确 resolv.conf )了。
检查办法就是 ping/telnet host_name,估计不通。 |