我创建了一个RDS实例(Postgres,免费层,默认为VPC),并选择了公共访问权限。现在,我正在尝试像这样在Python中连接它:
import psycopg2 as ps
# define credentials
credentials = {'POSTGRES_ADDRESS' : '', # change to your endpoint
'POSTGRES_PORT' : '', # change to your port
'POSTGRES_USERNAME' : '', # change to your username
'POSTGRES_PASSWORD' : '', # change to your password
'POSTGRES_DBNAME' : ''} # change to your db name
# create connection and cursor
conn = ps.connect(host=credentials['POSTGRES_ADDRESS'],
database=credentials['POSTGRES_DBNAME'],
user=credentials['POSTGRES_USERNAME'],
password=credentials['POSTGRES_PASSWORD'],
port=credentials['POSTGRES_PORT'])
cur = conn.cursor()
但是,这超时了。我究竟做错了什么?我相信我已经输入了以上所有凭证,所以也许这是AWS方面的问题?请让我知道是否需要更多信息。
谢谢!
答案 0 :(得分:4)
您将需要在安全组上允许入站访问:
最好使用这些设置创建一个新的安全组,然后修改数据库以使用此新的安全组。这样,它不会影响其他系统,将来的更改也不会影响此安全组。
答案 1 :(得分:2)
基于评论。
事实证明,该问题是由于RDS中的缺少默认数据库引起的。
使用默认数据库重新创建RDS解决了该问题。