Django无法连接PostgreSQL数据库求助:端口5433连接被拒绝
问题:Django连接PostgreSQL时出现端口连接拒绝错误
我在尝试将Django服务器连接至PostgreSQL数据库时,遇到如下错误:
port 5433 failed: Connection refused Is the server running on that host and accepting TCP/IP connections?
环境信息
- 操作系统:Windows 10 + Debian
- 开发工具:PyCharm
Django数据库配置
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.postgresql', 'NAME': 'ps_store_db', 'USER': 'zesshi', 'PASSWORD': '', 'HOST': 'localhost', 'PORT': '5433', } }
已排查操作
- 用DBeaver测试连接,结果正常
- 已关闭防火墙
- 已尝试将端口从默认的5432改为5433
解决方案建议
检查PostgreSQL监听配置
打开PostgreSQL的postgresql.conf文件,确认listen_addresses设置为'*'(允许所有IP访问)或包含Django运行环境的IP,同时确保port参数确实配置为5433。修改后重启PostgreSQL服务。修正主机地址指向
如果Debian是虚拟机或WSL环境,Windows下的localhost不会指向Debian系统的PostgreSQL服务。将Django配置中的HOST改为Debian系统的实际IP地址(可通过Debian终端执行hostname -I获取)。验证数据库用户连接权限
- 登录PostgreSQL,执行命令授权用户访问目标数据库:
GRANT ALL PRIVILEGES ON DATABASE ps_store_db TO zesshi; - 打开
pg_hba.conf文件,添加允许zesshi用户从Django所在IP连接的规则,例如:host ps_store_db zesshi 你的Windows主机IP/32 scram-sha-256
修改完成后重启PostgreSQL服务。
- 登录PostgreSQL,执行命令授权用户访问目标数据库:
测试端口连通性
在Windows终端执行telnet 你的DebianIP 5433,检查是否能正常连通。如果不通,需排查虚拟机/WSL的网络配置是否存在阻断。确认Django依赖包
确保已安装适配PostgreSQL版本的psycopg2或psycopg2-binary包,可重新安装排除版本问题:pip install psycopg2-binary
内容的提问来源于stack exchange,提问作者Zesshi
相关产品推荐
相关产品推荐

