【问题标题】:mysql farm with haproxy带有 haproxy 的 mysql 农场
【发布时间】:2015-11-10 12:42:46
【问题描述】:

我想在带有容器的单个节点中配置数据库场。我的想法是使用子域访问这些数据库中的每一个,例如 mysql1.example.com:3306、mysql2.example.com:3306、mysql3.example.com:3306。

我正在尝试使用 HAProxy 实现此模型,似乎我第一次通过 HAProxy 连接到一个数据库时它可以工作。当我重新连接时,我得到: ERROR 2013 (HY000): Lost connection to MySQL server at 'reading initial communication packet', 系统错误: 0

我在HAproxy中使用的模板是:

global
    maxconn 256
    debug

defaults
    timeout connect 5000ms
    timeout client 50000ms
    timeout server 50000ms

listen www
    bind *:3306
    mode tcp

    acl host_mysql hdr(host) -i mysql1.example.com
    server mysql_db_1 172.31.20.75:3307

    acl host_mysql hdr(host) -i mysql2.example.com
    server mysql_db_2 172.31.20.75:3308

    acl host_mysql hdr(host) -i mysql3.example.com
    server mysql_db_3 172.31.20.75:3309

【问题讨论】:

    标签: mysql haproxy


    【解决方案1】:

    我会自动回复。由于 Mysql 使用 TCP 协议,因此无法创建此实现,因此它不包含标头中的 URL。因此,HAproxy 无法重定向到正确的服务器。

    我正在考虑使用分配给每个数据库的虚拟 IP 来实现此环境。另一种实现方式是在同一服务器和不同端口上运行所有数据库。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-01
      • 2017-10-13
      • 2010-09-21
      • 2011-12-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多