Amazon RDS 数据库在本地连接但不在生产环境中连接
Amazon RDS db connects locally but not on production
我能够在本地连接到 amazon rds aurora 数据库,并且 运行 查询。
但是在生产 EC2 服务器上,连接 returns 500 服务器错误 "SQLSTATE[HY000] [2002] Connection timed out"。
- 我已将相同的数据库凭据添加到生产环境中,并且可以在错误日志中看到它们正在使用。
- 我启用了 'allow public access' 设置。
- 我将我拥有的所有安全组都添加到数据库中(这可能是问题所在,我没有创建任何特殊组,只是亚马逊建议我让他们创建)。
它怎么可能在本地工作而不在生产环境中工作?
你能不能检查一下你的生产服务器安全组出站规则。如果它是从本地连接而不是从生产机器连接,那么应该是一些出站流量超时。
这是一个安全组问题。
我的数据库实例应用了默认的 rds-setup-wizard 安全组,这给了我本地访问权限。我猜它有我的 IP 地址或类似的入站规则。
我必须添加一个新的安全组并将该新组添加到数据库实例。
我的新安全组需要一个如下所示的入站规则:
Type: MYSQL/Aurora
Protocol: TCP
Port Range: 3306
Source: my EC2's private ipv4 address with /32. Eg: 13.14.15.16/32
我能够在本地连接到 amazon rds aurora 数据库,并且 运行 查询。
但是在生产 EC2 服务器上,连接 returns 500 服务器错误 "SQLSTATE[HY000] [2002] Connection timed out"。
- 我已将相同的数据库凭据添加到生产环境中,并且可以在错误日志中看到它们正在使用。
- 我启用了 'allow public access' 设置。
- 我将我拥有的所有安全组都添加到数据库中(这可能是问题所在,我没有创建任何特殊组,只是亚马逊建议我让他们创建)。
它怎么可能在本地工作而不在生产环境中工作?
你能不能检查一下你的生产服务器安全组出站规则。如果它是从本地连接而不是从生产机器连接,那么应该是一些出站流量超时。
这是一个安全组问题。
我的数据库实例应用了默认的 rds-setup-wizard 安全组,这给了我本地访问权限。我猜它有我的 IP 地址或类似的入站规则。
我必须添加一个新的安全组并将该新组添加到数据库实例。
我的新安全组需要一个如下所示的入站规则:
Type: MYSQL/Aurora
Protocol: TCP
Port Range: 3306
Source: my EC2's private ipv4 address with /32. Eg: 13.14.15.16/32