我在没有NAT的一个子网上运行RDS实例,并且在配置了Internet网关的另一个子网上运行EC2实例,两者都位于同一个VPC中。我已将RDS实例配置为不可公开访问。
我在远程EC2(在第二个子网上运行)中使用以下命令连接到RDS实例:
mysql -h xxxx.eu-central-1.rds.amazonaws.com -P 3306 -u root -p
我输入了在配置RDS时设置的正确密码,但是我收到以下错误:
无法连接到xxxx.eu-central-1.rds.amazonaws.com上的MySQL服务器
我做错了什么?我错过了什么吗?
答案 0 :(得分:3)
您很可能需要在分配给RDS服务器的安全组中打开端口3306。特别是,创建允许在端口3306上进入的规则,并为源使用分配给EC2服务器的安全组的ID。
答案 1 :(得分:0)
您的子网和/或PostgreSQL实例的安全组入口规则必须为PostgreSQL打开端口3306。如果您更改了默认端口,则必须使用该端口。
您的EC2实例不应该通过互联网与之通信,只需要在安全组中打开正确的端口。
如果您不允许EC2安全组中的所有出口数据,则需要确保EC2安全组上的出口端口3306已打开到RDS安全组。