使用redshift_connector连接Redshift集群时遇TimeoutError求助
解决Redshift连接超时问题
首先修正最可能的错误:主机地址格式
你的连接代码中主机地址包含空格:eu-central 1,AWS Redshift的区域域名格式为连字符分隔,需改为eu-central-1,修正后的代码:
conn = redshift_connector.connect(host='******.******.eu-central-1.redshift.amazonaws.com', database='*******', port=5439, user='awsuser', password='**********')
其他排查与解决步骤
- 验证本地到Redshift的网络连通性
在终端执行以下命令测试端口是否可达:
如果连接失败,检查:nc -zv <你的Redshift端点> 5439- 安全组入站规则中的IP是否是当前主机的公网IP(动态IP可能已变更,可通过
curl ifconfig.me获取当前公网IP) - VPC网络ACL是否允许5439端口的入站流量(默认ACL允许所有,但自定义后需确认)
- 安全组入站规则中的IP是否是当前主机的公网IP(动态IP可能已变更,可通过
- 确认Redshift集群状态
登录AWS控制台,检查集群状态是否为available,若处于创建、维护或故障状态会导致无法连接 - 升级redshift_connector版本
旧版本可能存在兼容性问题,执行命令升级:pip install --upgrade redshift_connector - 增加连接超时参数
在连接时显式设置更长的超时时间,比如30秒:conn = redshift_connector.connect(host='******.******.eu-central-1.redshift.amazonaws.com', database='*******', port=5439, user='awsuser', password='**********', timeout=30)
内容的提问来源于stack exchange,提问作者paul773
相关产品推荐
相关产品推荐

