我很难将mysql Workbench连接到RDS。我联系了亚马逊支持,他们告诉了我
”“我已经查看了EB环境和SG的配置,它们现在处于良好状态,剩下的唯一项目,因为我认为无法远程连接到RDS DB,SG sg- 882213c3需要添加另一个规则,以允许计算机与mysql客户端之间的连接。也许允许0.0.0.0/0到TCP端口3306进行临时访问或从计算机的源IP。“
所以我做的是这个
但是连接仍然失败
以前的步骤是
我创建了一个新的新数据库实例,称为east-mysql2-instance1。对于east-mysql2-instance1,安全组设置为rds-launch-wizard(sg-882213c3),我确实将入站修改为Source sg-882213c3(rds-launch-wizard)。但它不会让我将类型更改为Mysql / Aurora,它停留在自定义TCP规则。
对于EC2实例,我有2个正在运行的实例,并且将两个安全组都更改为
rds-launch-wizard和awseb-e-bdbjjgxvzd-stack-AWSEBSecurity
我终止了旧环境,并创建了一个名为Borroup-env-1的新环境,我将该环境的EC2安全组更改为awseb-e-bdbjjgxvzd-stack-AWSEBSecurityGroup-1PTJG896MEOYR和rds-launch-wizard。 我更改了环境属性,并添加了RDS_DB_NAME,RDS_HOSTNAME,RDS_PASSWORD,RDS_PORT,RDS_USERNAME
答案 0 :(得分:0)
听起来您希望从Amazon EC2实例连接到Amazon RDS实例。假设它们都在同一VPC中,最简单的配置方法是:
这基本上是说与 App-SG 相关的任何资源都将被允许访问与 RDS-SG 相关的任何资源。
如果这不起作用,那么除了安全组外,还需要配置其他东西。
答案 1 :(得分:0)
在第二张屏幕截图中,您似乎正在建立一个连接:
如果这是您要实现的情况,我不会留下允许从0.0.0.0/0到3306的规则。这允许世界上任何IP地址都通过端口3306(众所周知的端口)进行连接。另外,该建议似乎建议针对RDS实例设置该规则?过度杀伤力-仅需要允许从您的EC2实例或其子网进行访问。
我要采取的第一步是在终端上使用SSH来验证您可以从Mac SSH到EC2实例-如果这不起作用,那就没必要看一下EC2和RDS之间的SG和规则。一旦工作,您就可以继续解决从ec2到RDS的连接。如John所述,如果RDS和EC2都在同一VPC中,则可以设置SG,以允许从EC2所在的子网访问RDS实例。
作为替代解决方案,您也可以设置为直接访问RDS实例,而无需通过EC2。请参见此处的公共可访问性以及子网要求:https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_VPC.WorkingWithRDSInstanceinaVPC.html取决于所需的设置类型...
如果EC2和RDS不在同一VPC中,但在同一区域中,则您可能需要考虑设置VPC对等:https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/vpc-peering.html如果它们的EC2和RDS不在同一区域或同一区域中VPC,您可能需要设置区域间VPC对等:https://aws.amazon.com/about-aws/whats-new/2017/11/announcing-support-for-inter-region-vpc-peering/