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

Django连接PostgreSQL报错求助:未提供密码导致连接失败

解决Django连接PostgreSQL的密码认证错误

针对你遇到的django.db.utils.OperationalError: connection to server on socket "/tmp/.s.PGSQL.5432" failed: fe_sendauth: no password supplied错误,按以下步骤排查解决:

  • 检查Django数据库配置
    打开项目根目录下的settings.py,确认DATABASES配置中的PASSWORD字段是否填写正确,要和PostgreSQL对应数据库用户的密码一致:

    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.postgresql',
            'NAME': '你的数据库名称',
            'USER': 'PostgreSQL用户名',
            'PASSWORD': '对应用户的密码',
            'HOST': 'localhost',
            'PORT': '5432',
        }
    }
    
  • 重启PostgreSQL服务
    不管是否是异常关闭导致的问题,先重启服务确保状态正常:

    • macOS(brew安装):brew services restart postgresql
    • Ubuntu/Debian:sudo systemctl restart postgresql
    • Windows:打开「服务」面板,找到PostgreSQL服务右键选择「重启」
  • 验证PostgreSQL用户认证设置

    1. 尝试用命令行登录PostgreSQL:psql -U 你的数据库用户名 -d 你的数据库名,如果需要输入密码才能登录,说明该用户需要密码认证,必须确保Django配置里的密码和这个一致。
    2. 查看PostgreSQL的pg_hba.conf配置文件(通常在PostgreSQL安装目录的data文件夹下),找到本地连接(local或host类型)的认证方式,确保是md5或scram-sha-256(需要密码的认证方式),修改后需要重启PostgreSQL服务生效。
  • 重置虚拟环境状态
    退出当前虚拟环境:deactivate(Windows直接运行该命令),然后重新激活虚拟环境:

    • macOS/Linux:source 你的虚拟环境目录/bin/activate
    • Windows:你的虚拟环境目录\Scripts\activate
      激活后再运行python manage.py runserver测试连接。
  • 清理无效的socket文件
    如果/tmp/.s.PGSQL.5432这个socket文件存在但无法正常连接,可以执行以下操作:

    1. 先停止PostgreSQL服务
    2. 删除socket文件:rm /tmp/.s.PGSQL.5432
    3. 重新启动PostgreSQL服务

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 01:05:24