我一直在尝试使用 redshift_connector 包从 Python 连接到我的 Amazon Redshift Serverless 实例,但我不断遇到连接超时错误。
这就是我尝试连接的方式:
host="redshift-host"
database="dev"
port=5439
user="admin"
password="the-admin-password"
serverless_acct_id="my_serverless_account_id"
serverless_work_group="my_workgroup_name"
# Option 1
conn = redshift_connector.connect(
iam=True,
host=host,
database=database,
access_key_id="AWS_ACCESS_KEY_ID",
secret_access_key="AWS_SECRET_ACCESS_KEY",
session_token="AWS_SESSION_TOKEN",
region="eu-north-1",
is_serverless=True,
serverless_acct_id=serverless_acct_id,
serverless_work_group=serverless_work_group
)
# Option 2
conn = redshift_connector.connect(
host=host,
database=database,
port=port,
user=user,
password=password,
)
这两种方法都失败了:
raise OperationalError("connection time out", timeout_error) redshift_connector.error.OperationalError: ('connection time out', TimeoutError(60, 'Operation timed out'))
以下是我的设置的详细信息以及迄今为止我所尝试的内容:
我检查过的内容:
对我来说,一切似乎都应该正确设置,并且我应该能够连接。但是我仍然不断收到超时错误。我做错了什么?
我尝试允许安全组中的所有流量并设置可公开访问
True
。我预计能够连接,但超时了。
更新:
我尝试使用 JDBC 连接通过 DBeaver 连接到数据库,但也失败并出现错误:
Connection attempt timed out
。我成功连接上了! Redshift 无服务器工作区连接到多个子网,其中一些子网是私有的。仅选择公共子网时,我能够连接。