通过 HAProxy 连接 mysql 时出现 ERROR 2013

通过 HAProxy 连接 mysql 时出现 ERROR 2013

我正在尝试使用 HAProxy 作为 2 个 mysql 节点的负载均衡器。我让 HAProxy 在 3307 上监听,并将请求路由到 3306 上的数据库。当客户端尝试连接到代理 (mysql -u ... -h .. -P3307 -p...) 时,它会收到以下错误:

错误 2013(HY000):在“读取初始通信包”时与 MySQL 服务器失去连接,系统>错误:0

当客户端尝试直接连接到数据库时,它工作正常。我不知道为什么当流量通过代理时它会失败。

以下是我已经检查过的内容:

  1. /etc/hosts.allow 包括“mysqld:ALL:允许”

  2. MySQL 配置文件(my.cnf)没有绑定地址行(对所有人开放)。

我正在使用 HAProxy 1.5dev、Mysql 5.1.x,整个 enchilada 都在 Amazon Linux 上的 ec2 中运行。

这是 HAProxy 配置文件:

    global
     log 127.0.0.1   local0
     log 127.0.0.1   local1 notice
     #log loghost    local0 info
     user haproxy
     group haproxy
     maxconn 4096
     daemon
     #debug
     #quiet

    defaults
     log     global
     mode    tcp
     option  tcplog
     option  dontlognull
     retries 3
     option redispatch
     maxconn 4096
     contimeout      5000
     clitimeout      50000
     srvtimeout      50000

    frontend mysql_cluster
     bind 10.0.0.150:3307
     default_backend mysql_cluster

    backend mysql_cluster
     mode tcp
     balance roundrobin
     option tcpka
     option httpchk
     server lb1 10.0.0.140:3306 check port 9200 inter 5s rise 2 fall 2
     server lb2 10.0.0.214:3306 check port 9200 inter 5s rise 2 fall 2 

    listen stats 10.0.0.150:8081
     mode http
     option httpclose
     balance roundrobin
     stats uri /
     stats realm Haproxy\ Statistics
     stats auth ***:***

有人解决过这个问题吗?有什么解决办法吗?

任何帮助都非常感谢

答案1

好的,我解决了。我的 xinetd 脚本有问题。

无法绑定到 9200 - 已在 /etc/services 文件中修复。

答案2

这通常发生在您的xinetd健康检查服务响应错误时。
您可以xinetd这样调试telnet

telnet IPADDR PORT     # IPADDR: one of the IPs of your nodes
                       # PORT: the port that node is listening.

输出会告诉您有关问题的信息。

答案3

在我的设置中,我没有运行 xinetd,但发现 mysql-check 选项导致了问题。因此,我至少可以通过注释掉它来启动并运行 haproxy。我怀疑 mysql-check 与使用了错误的 mysql 用户或缺少授权有关。

答案4

谢谢亲爱的,太好了,

HAproxy 需要正确配置 xinetd 才能工作,否则会出现以下错误,

错误 2013(HY000):在“读取初始通信包”时与 MySQL 服务器失去连接,系统错误:0

如果 Xinetd 已在运行则需要重新启动。

https://docs.openstack.org/ha-guide/shared-database-manage.html

相关内容