在没有 NAT 的情况下从不同子网上的 EC2 连接到 RDS
Connecting to an RDS from an EC2 on different subnets without NAT
我在一个没有 NAT 的子网上有一个 RDS 实例 运行,在另一个配置了 Internet 网关的子网上有一个 EC2 实例 运行,它们都位于同一个 VPC 中。我已将 RDS 实例配置为不可公开访问。
我在我的远程 EC2(第二个子网上的 运行)中使用以下命令连接到 RDS 实例:
mysql -h xxxx.eu-central-1.rds.amazonaws.com -P 3306 -u root -p
我输入了配置RDS时设置的正确密码,但出现以下错误:
Can't connect to MySQL server on xxxx.eu-central-1.rds.amazonaws.com
我做错了什么?我错过了什么吗?
您很可能需要在分配给 RDS 服务器的安全组中打开端口 3306。特别是,创建一个允许端口 3306 进入的规则,并为源使用分配给 EC2 服务器的安全组的 ID。
您子网的安全组入口规则and/or您的 PostgreSQL 实例必须为 PostgreSQL 打开端口 3306。如果您更改了默认端口,则必须改用该端口。
您的 EC2 实例不必通过互联网进行通信即可访问它,它只需要在安全组中打开适当的端口即可。
如果您不允许 EC2 安全组中的所有出口数据,那么您将需要确保出口端口 3306 在 EC2 安全组上打开,到 RDS 安全组。
我在一个没有 NAT 的子网上有一个 RDS 实例 运行,在另一个配置了 Internet 网关的子网上有一个 EC2 实例 运行,它们都位于同一个 VPC 中。我已将 RDS 实例配置为不可公开访问。
我在我的远程 EC2(第二个子网上的 运行)中使用以下命令连接到 RDS 实例:
mysql -h xxxx.eu-central-1.rds.amazonaws.com -P 3306 -u root -p
我输入了配置RDS时设置的正确密码,但出现以下错误:
Can't connect to MySQL server on xxxx.eu-central-1.rds.amazonaws.com
我做错了什么?我错过了什么吗?
您很可能需要在分配给 RDS 服务器的安全组中打开端口 3306。特别是,创建一个允许端口 3306 进入的规则,并为源使用分配给 EC2 服务器的安全组的 ID。
您子网的安全组入口规则and/or您的 PostgreSQL 实例必须为 PostgreSQL 打开端口 3306。如果您更改了默认端口,则必须改用该端口。
您的 EC2 实例不必通过互联网进行通信即可访问它,它只需要在安全组中打开适当的端口即可。
如果您不允许 EC2 安全组中的所有出口数据,那么您将需要确保出口端口 3306 在 EC2 安全组上打开,到 RDS 安全组。