本地使用psycopg2连接AWS Redshift出现超时错误如何解决
Amazon Redshift psycopg2连接超时排查方案
你收到的报错信息如下:
psycopg2.OperationalError: could not connect to server: Operation timed out. Is the server running on host xxx and accepting TCP/IP connections on port 5439
你已经完成公开访问开启、VPC路由添加公网网关的配置后仍然超时,可按照以下方向排查问题:
- VPC安全组入站规则配置错误
这是最常见的触发原因,仅配置路由规则无法放行公网访问,需要额外修改Redshift集群关联的VPC安全组:添加入站规则,选择TCP协议,端口填5439,源地址优先填写你本地设备的公网出口IP/32,测试阶段也可临时填写0.0.0.0/0验证连通性(生产环境不建议放开全源地址访问)。 - 集群所在子网不是公有子网
确认Redshift集群绑定的子网为公有子网:即该子网关联的路由表中,0.0.0.0/0的下一跳是互联网网关(IGW),如果下一跳是NAT网关则只能支持子网内资源主动访问公网,无法接收公网入站连接请求。 - 本地网络/防火墙限制
很多办公内网、运营商网络会封禁5439端口的出站请求,你可以用如下命令测试端口连通性:- Windows 环境执行:
telnet <你的Redshift集群域名> 5439 - Mac/Linux 环境执行:
nc -zv <你的Redshift集群域名> 5439
如果测试不通,可切换手机热点尝试连接,热点能连通则说明是你当前使用的网络出口封禁了对应端口。
- Windows 环境执行:
- 集群状态或参数配置错误
确认Redshift集群处于Available正常运行状态,没有处于重启、修改、维护中;同时确认你没有自定义过集群端口,默认端口为5439,修改过的话要在连接参数里同步修改。 - 连接代码参数错误
检查psycopg2连接配置中的集群域名、端口、数据库名、账号密码是否和Redshift控制台给出的信息完全一致,避免复制时多带空格、拼写错误。
内容的提问来源于stack exchange,提问作者kiyeonj
相关产品推荐
相关产品推荐

