我在我的AWS账户上创建了一个Amazon Aurora Postgres数据库,现在正尝试使用PgAdmin连接到它。我输入数据库名称,用户名,密码,主机和端口。当我尝试连接时,我遇到了这个问题。
Unable to connect to server:
could not connect to server: Operation timed out
Is the server running on host "host_name.us-east-2.rds.amazonaws.com" (IP Address) and accepting
TCP/IP connections on port 5432?
我是亚马逊Aurora的新手,我不确定下一步要连接的是什么。我阅读了文档,但找不到我要找的内容。当我尝试使用我的Django应用程序的生产服务器连接它时,我也遇到了同样的错误。
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'dbname',
'USER': 'username',
'PASSWORD': 'password',
'HOST': 'hostname.us-east-2.rds.amazonaws.com',
'PORT': '5432'
}
}
我遇到了类似的问题
django.db.utils.OperationalError: could not connect to server: Connection timed out
Is the server running on host "hostname.us-east-2.rds.amazonaws.com" (IP Address) and accepting
TCP/IP connections on port 5432?
答案 0 :(得分:1)
您应该将您尝试连接的IP从EC2中的安全组下添加到您的RDS'安全组作为传入的mysql连接
答案 1 :(得分:0)
我在此处发布了有关PostgreSQL的类似问题的答案,并认为即使使用Aurora,这也可能有所帮助:django cannot connect to RDS postgresql
当您尝试在EC2或EB上使用现有的RDS数据库和Django时,必须调整安全组,然后获取适当的参数并将其设置为环境变量(RDS _ *)
1)创建RDS,并进行匹配:
Environment variables - RDS console label
RDS_HOSTNAME - Endpoint (this is the hostname)
RDS_PORT - Port
RDS_DB_NAME – DB Name
RDS_USERNAME – Username
RDS_PASSWORD – Password you set for your DB
2)使用eb setenv
3)转到您的EC2 / EB实例,然后获取该实例的安全组。 awseb-z-afsafdsaf-stack-AWSEBSecurityGroup-asfdsadfasdf
,对于负载均衡器:awseb-e-adsfadsf-stack-AWSEBLoadBalancerSecurityGroup-asdfadsf
4)转到RDS实例的面板,向下滚动到“安全组”,并记下它具有的安全组。例如rds-launch-wizard-1 (ab-sdjfalkajsdf39)
5)单击RDS实例的“修改”,然后在中间的“安全组”设置中,添加您在上面找到的负载均衡器安全组。应该有建议。
6)转到EC2仪表板,然后从左侧菜单中选择安全组。
7)选择负载均衡器安全组,然后添加出站规则。 Type应该是您的RDS类型(PostgreSQL),目的地应该是custom和RDS实例的安全组。保存。
8)对“入站”执行相同操作,使用相同的RDS类型和“目标”
9)选择RDS安全组,并添加一个入站规则,类似于8,但使用在步骤2中获得的EC2或EB实例。
10)保存,完成。他们现在应该可以一起工作了。
我不是100%肯定所有这些步骤都是必要的,也许不需要一两个步骤,但这已经为我完成了工作。