Windows11下Django项目连接PostgreSQL超时问题求助
Django连接远程PostgreSQL频繁出现Connection timed out问题排查方案
问题场景
Windows11系统下,VS Code中运行Django项目,执行python manage.py runserver时频繁抛出:
django.db.utils.OperationalError: connection to server at "13.234.81.119", port 5432 failed: Connection timed out (0x0000274C/10060)
Is the server running on that host and accepting TCP/IP connections?
偶尔重启服务器可临时恢复,但问题反复。已尝试删除临时文件、重装psycopg2 2.9.2、重置本地TCP/IP设置,无效。
排查方向与解决方案
1. 验证远程服务与网络连通性
- 用PowerShell执行
Test-NetConnection 13.234.81.119 -Port 5432,或CMD执行telnet 13.234.81.119 5432,连续测试5-10次,确认是否存在间歇性丢包、超时 - 联系运维确认远程PostgreSQL服务器的负载情况,排查是否存在连接数耗尽、防火墙临时拦截、机房网络波动等问题
2. 优化Django数据库连接参数
在项目settings.py中调整数据库配置,添加连接活性与超时控制参数:
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.postgresql_psycopg2', 'NAME': '你的数据库名', 'USER': '你的数据库账号', 'PASSWORD': '你的数据库密码', 'HOST': '13.234.81.119', 'PORT': '5432', # 新增连接优化参数 'CONN_MAX_AGE': 60, # 缩短连接复用时长,避免无效长连接 'OPTIONS': { 'connect_timeout': 10, # 设置连接超时时间(秒) 'keepalives': 1, 'keepalives_idle': 30, 'keepalives_interval': 10, 'keepalives_count': 5, } } }
这些参数可减少长连接失效导致的超时,同时在连接异常时快速重试。
3. 排查本地网络干扰
- 关闭VPN、代理软件,或切换网络(WiFi换有线),验证是否是代理/路由导致的间歇性拦截
- 临时关闭Windows防火墙,测试是否存在出站规则对Python进程的限制
- 检查杀毒软件的网络防护功能,确认是否拦截了Python的网络请求
4. 升级psycopg2版本
2.9.2版本在部分Windows环境下可能存在网络连接bug,尝试升级到最新稳定版:
pip install --upgrade psycopg2-binary
(psycopg2-binary无需编译,更适配Windows环境)
5. 检查Django进程状态
- 打开任务管理器,查看Python进程的CPU、内存占用,排查是否因资源泄漏导致进程异常
- 出现问题时仅重启Django进程(而非服务器),验证问题是否出在进程本身
内容的提问来源于stack exchange,提问作者Sampat Aheer
相关产品推荐
相关产品推荐

