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

Постоянная и неожиданная ошибка проверки HAProxy MySQL

Я запускаю HAProxy для распределения нагрузки между 3 узлами mysql galera. К сожалению, HAProxy показывает, что node2 постоянно отключен, в то время как другие узлы работают отлично. Конфиг выглядит просто отлично, имя пользователя, пароли, порты все как должно быть. Я не могу найти причину этого.

Это соответствующая часть конфигурации HAProxy:

listen mysql-galera-cluster
        bind 10.0.0.10:3306
        mode tcp
        option mysql-check user haproxy_check
        balance roundrobin
        source 10.0.0.10
        server db1 10.0.0.101:3307 check
        server db2 10.0.0.102:3307 check
        server db3 10.0.0.103:3307 check

На db3 я получаю следующую запись в mysql.log:

151111 17:48:06  1518 Connect   haproxy_check@10.0.0.10 on 
     1518 Quit

На db2 такой записи нет. Однако журнал работает, если я попытаюсь войти в систему вручную (mysql -h 10.0.0.102:3307 -u root -p), Я получил:

151111 17:30:48   342 Connect   root@node1 on 
      342 Connect   Access denied for user 'root'@'node1' (using password: YES)

Так почему же HAProxy не пытается проверить наличие 10.0.0.102? Я пробовал ту же строку с 10.0.0.103, и она отлично работает.

Заранее благодарим вас за любую помощь в этом вопросе!

Я решил проблему. Это было связано не с конфигурацией HAProxy, а с неправильной конфигурацией keepalived. На db2 настроен резервный keepalived, для которого eth0 был настроен как 10.0.0.10 вместо eth1. Изменение этого устранило проблему.

Попробуйте увеличить интервал между двумя последовательными проверками работоспособности.

Например: 5 с.

server db1 10.0.0.101:3307 check inter 5s
server db2 10.0.0.102:3307 check inter 5s
server db3 10.0.0.103:3307 check inter 5s