2013 - Lost connection to MySQL server at 'reading initial communication packet' system error: 0 while trying to connect to MariaDB over HAProxy

2013 - Lost connection to MySQL server at 'reading initial communication packet' system error: 0 while trying to connect to MariaDB over HAProxy

我正在尝试使用 HAProxy 负载平衡器连接到 MariaDB,但是当我尝试连接到 HAProxy 时 returns 出现了那个错误。我尝试了 Whosebug 上有关此错误的所有链接,但它们对我不起作用。我该怎么办?

2013 - Lost connection to MySQL server at 'reading initial communication packet',
system error: 0 "Internal error/check (Not system error)"

我的 MariaDB Galera 集群有 3 个节点,我使用的 HAProxy 配置如下。

listen testgalera
    bind 10.131.63.83:3306
    balance source
    mode tcp
    option tcpka
    option mysql-check user haproxy
    server db1 10.131.60.8:3306 check weight 1
    server db2 10.131.60.35:3306 check weight 1
    server db3 10.131.61.117:3306 check weight 1

大多数 HAProxy with Galera 教程都使用给定的配置,但有一行会导致错误,如果我们删除它,没有任何变化,HAProxy 在没有“选项 mysql-check user haproxy”行的情况下也能正常工作

MariaDB Galera 集群的 HAProxy 配置必须如下所示:

listen testgalera
    bind 10.131.63.83:3306
    balance source
    mode tcp
    option tcpka
    server db1 10.131.60.8:3306 check weight 1
    server db2 10.131.60.35:3306 check weight 1
    server db3 10.131.61.117:3306 check weight 1

如果您尝试了所有其他选项, 只需确保允许 root 从其他 IP 连接即可。默认允许从 127.0.0.1(本地主机)连接。 要检查:

  • 转到PHP-我的管理员
  • 转到用户帐户
  • 对照根检查主机名列。 - 如果找不到您的主机,请创建另一个用户,为该用户提供所需的权限,并将主机名作为您要连接的计算机的 IP。

-如果从 workbench 8.0 或更高版本连接,如果您不使用 SSL,请不要忘记在高级选项卡中添加“useSSL=0”。