arkanoid
arkanoid

Reputation: 81

mysql farm with haproxy

I want to configure a DB farm in a single node with containers. My idea is to access in each of these DB with a subdomain, for example mysql1.example.com:3306, mysql2.example.com:3306, mysql3.example.com:3306.

I'm trying to implement this model with HAProxy, it seems that the first time that I connect to one database through the HAProxy it works. When I reconnect I get: ERROR 2013 (HY000): Lost connection to MySQL server at 'reading initial communication packet', system error: 0

The template I use in HAproxy is:

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

Upvotes: 0

Views: 266

Answers (1)

arkanoid
arkanoid

Reputation: 81

I auto-respond. It's not possible to create this implemetation due to Mysql uses TCP protocol, so it not include the URL in the header. For this reason HAproxy can't redirect to the correct server.

I'm thinking to implement this environment using virtual IP's assigned to each database. Another implementation would be running all databases in the same server and different ports.

Upvotes: 1

Related Questions