TCP stream反向代理mysql,开启ngx_healthcheck_module会出现非常多的connection errors
txke opened this issue · 3 comments
txke commented
用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'
zhouchangxun commented
这个是因为只对后端做了tcp连接性检查,没有和后端进行mysql协议交互造成的。
如果针对mysql协议层进行检查,是否需要真正登录成功才可以?这样的话需要在nginx配置中暴露myql用户名密码,又会带来安全问题。
上一个issue #32 中提到的host_cache_size = 0 是不是可以规避此问题?
acheng-floyd commented
host_cache_size = 0 只能规避nginx IP不会被block,但是如果5.7.19默认的日志级别不调整的话,还是会输出很多note错误信息到mysql错误日志中,现在我这边是把mysql的日志级别从默认的3调到2了,log_error_verbosity=2,我的版本是5.7.19,我看了官方文档,不同的版本这个默认日志级别是不一样的
txke commented
关闭host_cache_size就像上面说的,只能规避IP不会被block,但是日志会输出很多,如果是开发就没办法了,线上的话要调整日志输出