我已在HAProxy连接中添加了一个条目以连接到MySQL数据库。目前仅用于阅读,不用于写作。
我将其设置如下:
frontend db_read_port33517
mode tcp
option tcplog
bind *:33517
default_backend db_slave_con
backend db_slave_con
option mysql-check user haproxy post-41
server database1 1.2.3.4:3307 check port 3307
server database2 1.2.3.5:3307 check port 3307 backup
它是MySQL 5.7,并且我已经向MySQL添加了一个基本用户:
CREATE USER 'haproxy'@'1.0.0.0/255.0.0.0' IDENTIFIED BY 'some_password';
但是在stats页面上,它无法连接到任何一个数据库。这是我第一次使用mysql-check
选项,但是我想我已经错过了一些东西,但是通过所有笔记,我看不到它是什么?
n.b。这两个数据库都存在,我可以和haproxy
用户连接到它们。
查看日志,可以看到我正在0Access denied for user 'haproxy'@'1.2.3.6'
。我已将用户修改为haproxy@%
,但这没有区别。
我猜这是因为用户是用密码创建的(我们的政策规定所有数据库用户都必须具有密码),并且HAProxy没有传递密码。是否可以在HAProxy配置中指定密码?
答案 0 :(得分:0)
似乎我是对的,删除密码后,HAProxy便可以看到数据库。我已经阅读了HAProxy的注释,并且似乎没有任何方法可以指定密码。
尽管我很欣赏它仅使用该用户来连接/断开连接,但这仍然似乎有点安全问题,因为我的数据库中现在有一个没有密码的用户。我认为我现在能做的最好的就是尽可能紧密地锁定用户的IP地址。