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

PyCharm抛出[08004]错误求助:已配置各项服务仍无法排查原因

解决PyCharm抛出[08004]密码认证错误的排查方案

我之前也碰到过几乎一模一样的情况——明明数据库连接正常、Django配置也没毛病,PyCharm却固执地报密码未提供的错误。结合你的场景(远程DigitalOcean Droplet、SSH密钥登录、Ubuntu 16.04),给你几个针对性的排查方向:

1. 核对PyCharm Database工具的独立配置

虽然你说数据库连接正常,但PyCharm的Database面板是独立于Django settings的配置模块,很容易出现不同步的情况:

  • 打开右侧Database面板,找到你的PostgreSQL连接,右键选择Properties
  • 确认Password字段是否和settings.py里的<pwd>完全一致,不要留空或者填错
  • 如果之前是用SSH隧道连接数据库,还要检查SSH配置里有没有意外覆盖了数据库认证信息

2. 检查Run/Debug配置的环境变量覆盖

有时候PyCharm的运行配置会悄悄覆盖你的数据库设置:

  • 点击顶部Run > Edit Configurations,找到你的Django Server配置
  • 切换到Environment Variables标签,检查有没有设置DATABASE_PASSWORD或者其他和数据库相关的变量
  • 如果有这类变量,要么删除它(让Django读取settings里的配置),要么确保它的值和settings.py里的密码一致

3. 远程Python解释器的环境变量干扰

你用的是远程Ubuntu上的Python解释器吧?远程服务器的环境变量可能会影响Django的配置读取:

  • 登录远程Droplet,执行命令:echo $DATABASE_PASSWORD
  • 如果输出了空值或者错误的密码,说明服务器环境变量里的这个值覆盖了settings.py的配置
  • 可以通过编辑~/.bashrc或者~/.profile文件,删除相关的环境变量设置,然后重启终端生效

4. 清空PyCharm缓存解决配置异常

PyCharm的缓存偶尔会出现配置不更新的bug:

  • 点击顶部File > Invalidate Caches...
  • 选择Invalidate and Restart,等待PyCharm重启后再运行项目
  • 这个操作会清空缓存但不会删除你的项目文件,放心执行

5. 最后核对PostgreSQL的pg_hba.conf(兜底排查)

虽然你说数据库连接正常,但还是确认下远程PostgreSQL的认证规则:

  • 登录远程服务器,找到pg_hba.conf文件(路径一般是/etc/postgresql/9.5/main/pg_hba.conf,对应Ubuntu 16.04的默认PostgreSQL版本)
  • 查找针对django用户和our_db数据库的规则,确保是类似这样的配置:
    host    our_db     django     <你的本地IP>/32     md5
    
  • 如果认证方式是ident或者peer,会导致密码认证失败,改成md5后重启PostgreSQL服务:sudo systemctl restart postgresql

如果以上步骤都试过还是不行,再仔细检查settings.py里的密码有没有拼写错误,比如特殊字符(如$、@)有没有正确转义,或者引号有没有漏写~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 08:18:41