ngx_healthcheck_module icon indicating copy to clipboard operation
ngx_healthcheck_module copied to clipboard

TCP stream反向代理mysql,开启ngx_healthcheck_module会出现非常多的connection errors

Open txke opened this issue 4 years ago • 3 comments

用tcp stream反向代理mysql,开启ngx_healthcheck_module会产生非常多的错误链接,最终导致用域名反向代理链接失败,实际数据库服务器没问题,这个不知道是什么问题。错误提示是:ERROR 1129 (HY000): Host 'x.x.x.x' is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts'

txke avatar Jul 10 '20 13:07 txke

这个是因为只对后端做了tcp连接性检查,没有和后端进行mysql协议交互造成的。

如果针对mysql协议层进行检查,是否需要真正登录成功才可以?这样的话需要在nginx配置中暴露myql用户名密码,又会带来安全问题。

上一个issue https://github.com/zhouchangxun/ngx_healthcheck_module/issues/32 中提到的host_cache_size = 0 是不是可以规避此问题?

zhouchangxun avatar Jul 11 '20 06:07 zhouchangxun

host_cache_size = 0 只能规避nginx IP不会被block,但是如果5.7.19默认的日志级别不调整的话,还是会输出很多note错误信息到mysql错误日志中,现在我这边是把mysql的日志级别从默认的3调到2了,log_error_verbosity=2,我的版本是5.7.19,我看了官方文档,不同的版本这个默认日志级别是不一样的

acheng-floyd avatar Jul 11 '20 09:07 acheng-floyd

关闭host_cache_size就像上面说的,只能规避IP不会被block,但是日志会输出很多,如果是开发就没办法了,线上的话要调整日志输出

txke avatar Jul 12 '20 00:07 txke