mysql - HAProxy 带有 mysql-check 选项,不起作用

标签 mysql haproxy

我已在 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';

但是查看统计页面,它无法连接到任一数据库。这是我第一次使用 mysql-check 选项,但我猜我错过了一些东西,但浏览完所有注释后我看不出它是什么?

n.b.数据库都存在,我可以使用 haproxy 用户连接到它们..


查看日志,我可以看到0用户'haproxy'@'1.2.3.6'的访问被拒绝。我已将用户修改为 haproxy@% 但这没有什么区别。

我猜测这是因为用户是使用密码创建的(我们的策略规定所有数据库用户都必须有密码)并且 HAProxy 没有传递密码。有没有办法在 HAProxy 配置中指定密码?

最佳答案

看来我是对的,只要我删除密码,HAProxy就可以看到数据库。我已经浏览了 HAProxy 的注释,似乎没有任何方法可以指定密码。

虽然我很欣赏它只使用该用户来连接/断开连接,但这似乎仍然是一个安全问题,因为我现在的数据库中有一个没有密码的用户。我认为目前我能做的最好的事情就是尽可能严格地锁定用户的 IP 地址。

关于mysql - HAProxy 带有 mysql-check 选项,不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57786879/

相关文章:

python - 随着时间的推移,Django 查询变得越来越慢

没有 DB 生成框架的 PHP MySQL 页面生成

php - 支持用户时区

php - 将控制台输出重定向到浏览器

ssl - 定义自定义负载均衡算法

忽略 MySQL 退出处理程序

linux - 如何拦截HAproxy中的agent-send选项?

ssl - 使用证书的 EJBCA Web 管理员的 HA 代理

HAProxy 有时会选择错误的 acl

ssl - HAProxy 如何为 map_dom 计算出 SSL_FC_SNI