Назад | Перейти на главную страницу

Проблема с балансировкой нагрузки HAProxy

У меня есть следующие конфигурации для балансировки нагрузки кластера precona.

haproxy.cfg

global
        log 127.0.0.1   local1 notice
        maxconn 4096
        user haproxy
        group haproxy
        #debug
        #quiet

defaults
        log     global
        mode    http
        option  tcplog
        option  dontlognull
        retries 3
        maxconn 2000
        timeout connect 3000
        timeout server 5000
        timeout client 5000

listen mysql-cluster
    bind 127.0.0.1:3306
    mode tcp
    balance roundrobin
    option mysql-check user root

    server db01 192.168.54.158:3306 check
    server db02 192.168.54.140:3306 check

Я последовал за этот руководство по настройке haproxy. Однако я не могу подключиться к кластеру из экземпляра haproxy.

mysql -u root -proot -h 127.0.0.1 --port=3306 -e "show variables like 'server_id'"

Выкинь следующую ошибку.

ERROR 2013 (HY000): Lost connection to MySQL server at 'reading initial communication packet', system error: 0

Я попытался отладить проблему, просмотрев логи haproxy. Однако в / var / log / syslog не было никаких журналов или такого файла haproxy.log в / var / log / нет.

Я даже попытался обновить /etc/rsyslog.d/49-haproxy.conf до следующего и перезапустить службу rsyslog

$ModLoad imudp
$UDPServerRun 514

local0.*                        -/var/log/haproxy-0.log
local1.*                        -/var/log/haproxy-1.log
&~

Я использую haproxy версии 1.5.15 на ubuntu 14.04.1 LTS. Я могу напрямую подключиться к кластеру mysql с узла haproxy. Что бы здесь неправильно настроили? Как я могу правильно включить ведение журнала в haproxy?

 Allow mysql server for remote login -:
 /etc/mysql/my.cnf    
127.0.0.1 to 0.0.0.0 

   Note – This command run on both mysql server 

root@mysql-1# mysql -u root -p -e "INSERT INTO mysql.user (Host,User) values ('haproxy server ip ','haproxy_check'); FLUSH PRIVILEGES;"

 root@mysql-1# mysql -u root -p -e "INSERT INTO mysql.user (Host,User) values ('haproxy server ip','haproxy_root'); FLUSH PRIVILEGES;"

   A MySQL user is needed with root privileges when accessing the MySQL cluster from HAProxy. The default root user on all the servers are allowed to login only locally. While this can be fixed by granting additional privileges to the root user, it is better to have a separate user with root privileges.

Примечание. Эта команда выполняется на обоих серверах mysql.

root@mysql-1# mysql -u root -p -e "GRANT ALL PRIVILEGES ON *.* TO 'haproxy_root'@'haproxy server ip' IDENTIFIED BY 'password' WITH GRANT OPTION; FLUSH PRIVILEGES"

 # sudo service mysql restart
 Then run below cmnd -:

  sudo mysql -h haproxyserverIP  -u haproxy_root -p -e "show variables like 'server_id'"