HAProxy MySQL 检查永久且意外失败

HAProxy MySQL 检查永久且意外失败

我正在运行 HAProxy 以在 3 个 mysql galera 节点之间分散负载。不幸的是,HAProxy 显示 node2 永久离线,而其他节点工作正常。配置看起来不错,用户名、密码、端口一切都正常。我找不到原因。

这是 HAProxy 配置的相关部分:

listen mysql-galera-cluster
        bind 10.0.0.10:3306
        mode tcp
        option mysql-check user haproxy_check
        balance roundrobin
        source 10.0.0.10
        server db1 10.0.0.101:3307 check
        server db2 10.0.0.102:3307 check
        server db3 10.0.0.103:3307 check

在 db3 上我确实在 mysql.log 中得到了以下条目:

151111 17:48:06  1518 Connect   [email protected] on 
     1518 Quit

在 db2 上没有这样的条目。但是日志可以工作,如果我尝试手动登录 ( mysql -h 10.0.0.102:3307 -u root -p),我得到:

151111 17:30:48   342 Connect   root@node1 on 
      342 Connect   Access denied for user 'root'@'node1' (using password: YES)

那么为什么 HAProxy 不尝试检查 10.0.0.102?我尝试使用 10.0.0.103 进行同样的操作,结果完美。

提前感谢您对此提供的任何帮助!

答案1

我解决了这个问题。这与 HAProxy 配置无关,而是 keepalived 配置错误。db2 上配置了一个备份 keepalived,其中 eth0 配置为 10.0.0.10,而不是 eth1。更改此设置可修复此问题。

答案2

尝试增加两次连续健康检查之间的间隔。

例如:5s

server db1 10.0.0.101:3307 check inter 5s
server db2 10.0.0.102:3307 check inter 5s
server db3 10.0.0.103:3307 check inter 5s

相关内容