首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >AWS RDS中止连接Haproxy

AWS RDS中止连接Haproxy
EN

Stack Overflow用户
提问于 2016-01-25 08:47:07
回答 1查看 1K关注 0票数 2

我在AWS中创建了一个主复制和两个复制,用haproxy创建了一个EC2。

代码语言:javascript
运行
复制
listen rds-cluster
    bind 172.30.0.xxx:3306
    mode tcp
    option mysql-check user ha_check
    balance roundrobin
    server mysql-1 replica1.xxxx.ap-southeast-1.rds.amazonaws.com:3306 check weight 1 fall 2 fastinter 1000
    server mysql-2 replica2.xxxx.ap-southeast-1.rds.amazonaws.com:3306 check weight 1 fall 2 fastinter 1000

如果我可以使用端点直接连接到复制服务器,但是如果我使用haproxy

代码语言:javascript
运行
复制
$ mysql -h172.30.0.xxx -uha_read -ppassword -e "show variables like 'server_id'"
ERROR 2013 (HY000): Lost connection to MySQL server at 'reading initial communication packet', system error: 0

我犯了那个错误

我已经增加了connect_timeout

如果我查一下

代码语言:javascript
运行
复制
SHOW GLOBAL STATUS LIKE 'Aborted_connects';

它一直在增加

===============

本文解决了我的问题AMAZON实例的定制配置

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-01-25 10:06:40

默认情况下,如果在启动RDS时不更改安全组设置,则只有您的IP才能访问数据库。在您的情况下,您还需要授权case节点访问数据库。

转到RDS,选择实例,然后选择安全组,编辑,添加一个新规则,以使您的HAproxy (最佳实践)的安全组或HAproxy IP (如果这是弹性IP仍然足够好)能够访问端口3306上的数据库。

希望这是足够清楚的:)

编辑:我知道您已经解决了您的问题,但是对于稍后阅读的人(或者如果您想增强安全性的话),我添加了一些关于我所说的信息:当DNS查询是从同一个VPC中的一个实例到Amazon提供的该VPC中的DNS服务器时,RDS主机名将被解析为私有IP。因此,在您的安全组中,在这种情况下,您必须允许您的代理子网或其私有IP (而不是公共IP)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34988344

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档