You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Amazon RDS(PostgreSQL)无法连接Django应用,报端口5432超时

PostgreSQL连接Django超时的排查方向
  • PostgreSQL服务未启动或监听地址限制
    先确认PostgreSQL服务是否正常运行,再检查postgresql.conf中的listen_addresses参数——默认可能设为localhost,仅允许本地连接,远程主机无法访问。需将其改为*或明确指定Django应用所在主机的IP。
    检查命令:

    sudo systemctl status postgresql
    grep listen_addresses /etc/postgresql/<你的版本号>/main/postgresql.conf
    
  • 数据库访问控制列表(pg_hba.conf)未授权
    云服务商的入站规则放行后,数据库自身的访问控制列表可能仍拒绝连接。需在pg_hba.conf中添加允许Django主机IP的规则,示例:

    host  <你的数据库名>  <你的用户名>  <Django主机IP>/32  scram-sha-256
    

    修改后重启PostgreSQL服务生效。

  • 数据库主机本地防火墙未开放端口
    即使云入站规则开放了5432端口,数据库主机的本地防火墙(如ufw、firewalld)可能仍拦截请求。执行对应命令开放端口:

    # Ubuntu/Debian系统
    sudo ufw allow 5432/tcp
    # CentOS/RHEL系统
    sudo firewall-cmd --add-port=5432/tcp --permanent && sudo firewall-cmd --reload
    
  • Django配置文件的主机地址错误
    核对settings.py中DATABASES配置的HOST字段,确认是数据库的公网/内网IP,而非localhost或错误地址。示例正确配置:

    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.postgresql',
            'NAME': 'your_database',
            'USER': 'your_user',
            'PASSWORD': 'your_password',
            'HOST': '192.168.1.100',  # 确保该地址准确指向数据库主机
            'PORT': '5432',
        }
    }
    
  • 端口占用或PostgreSQL监听端口不符
    检查5432端口是否被其他进程占用,或PostgreSQL配置的端口并非5432。查看命令:

    sudo netstat -tulpn | grep 5432
    grep port /etc/postgresql/<你的版本号>/main/postgresql.conf
    

内容的提问来源于stack exchange,提问作者kylo74

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 21:45:37