本地Django应用连接AWS RDS PostgreSQL报连接超时错误如何解决
本地Django连接AWS RDS PostgreSQL超时问题解决方案
- 检查RDS公开访问权限
进入RDS实例详情页的「连通性与安全」标签,确认「公开可访问」属性为是。若设置为否,仅VPC内部资源可访问该实例,本地环境无法直接连通。 - 校验RDS关联安全组的入站规则
找到实例关联的VPC安全组,添加入站规则:- 类型:PostgreSQL(默认端口5432)
- 来源:填写你本地设备的公网IP(可搜索「我的公网IP」获取)
测试阶段可临时设置来源为0.0.0.0/0验证连通性,生产环境必须关闭该配置避免安全风险。
- 排查VPC网络ACL限制
确认RDS所在VPC的网络ACL未禁止5432端口的入站、出站流量,默认VPC ACL允许所有端口的出入请求,若手动修改过规则需补充对应端口放行配置。 - 验证本地网络出站限制
本地防火墙或办公网络可能会封禁5432端口的出站请求,可通过以下命令测试端口连通性:telnet database-abc.xxx.us-region-yyy.rds.amazonaws.com 5432
若返回连接失败,优先排查本地网络限制。 - 修正Django配置项错误
你当前settings.py中用户字段配置有误,Django PostgreSQL数据库配置的用户键为USER而非USERNAME,修正后的配置参考:DATABASES = { 'default': { 'ENGINE': 'django.db.backends.postgresql_psycopg2', 'NAME': 'database_name', 'USER': 'my_username', 'PASSWORD': 'my_password', 'HOST': 'database-abc.xxx.us-region-yyy.rds.amazonaws.com', 'PORT': '5432', } } - 排除RDS实例本身异常
确认RDS实例运行状态为「可用」,未处于停止、创建中或故障状态。可先通过官方psql客户端直接连接测试,排除Django框架层面的问题:psql -h database-abc.xxx.us-region-yyy.rds.amazonaws.com -p 5432 -U my_username database_name
若psql可正常登录,再排查Django依赖是否完整,确认已安装psycopg2-binary依赖包。
内容的提问来源于stack exchange,提问作者Samyak Gupta
相关产品推荐
相关产品推荐

