我在 AWS 上有一个免费帐户。我已经设置了一个 mysql 数据库和一个 EC2 实例。我想从 EC2 中的 shell 连接到数据库。当我尝试使用此命令执行此操作时:
mysql -h database-1.clyum4kwu2lg.us-west-2.rds.amazonaws.com -u {username} -p
我明白了
Can't connect to MySQL server on 'database-1.clyum4kwu2lg.us-west-2.rds.amazonaws.com:3306' (110)
他们都在同一个安全组中。我对群组有以下入站规则: sgr-039fbbc8ad9003041 IPv4 SSH TCP 22 71.38.46.66/32 – –
sgr-0eff695cc6b9c637c IPv4 MYSQL/Aurora TCP 3306 71.38.46.66/32 –
–
sgr-04d152a98c8ec2356 IPv4 Custom TCP TCP 8080 0.0.0.0/0
以及以下出站规则:
– sgr-0a1b7e4aebd28bedd IPv4 所有流量 全部 全部 0.0.0.0/0
如何启用从 EC2 到数据库的连接?
从你分享的细节来看,特别是看到你在群里有以下入站规则:
sgr-039fbbc8ad9003041 IPv4 SSH TCP 22 71.38.46.66/32 – –
,我相信71.38.46.66/32
就是你的公网IP地址。
我想说的是,在你指定的安全组入站规则中,可以访问端口3306(MySQL)的是你的公共IP地址。
您需要将其从公共 IP 更改为 EC2 实例的私有 IP。
我相信这应该可以解决问题。
当然,其他需要考虑的事情是您的 RDS 实例和 EC2 实例位于同一 VPC 或对等 VPC 中。