Django配置PostgreSQL后启动报错fe_sendauth: no password supplied如何解决
Django切换PostgreSQL报错fe_sendauth: no password supplied解决方案
错误核心原因
报错fe_sendauth: no password supplied直接指向PostgreSQL身份验证失败,根因是settings.py数据库配置存在3处需修正的问题:
- 数据库配置的
PASSWORD字段为空,PostgreSQL默认不允许无密码登录本地账户 HOST字段为空时,PostgreSQL默认会触发非密码认证模式,无法匹配你的配置- 数据库名
sarah disquaires带有空格,后续会触发额外连接错误,建议修改为下划线分隔的命名
分步修复方案
步骤1:调整PostgreSQL账户与数据库配置
打开PostgreSQL自带的psql命令行工具,依次执行以下SQL命令:
-- 给sarra用户设置登录密码,替换为你自定义的密码即可 ALTER USER sarra WITH PASSWORD '你的自定义密码'; -- 重新创建无空格的数据库,避免后续连接异常 DROP DATABASE IF EXISTS "sarah disquaires"; CREATE DATABASE sarah_disquaires OWNER sarra;
步骤2:修正settings.py的数据库配置
替换原有DATABASES配置为以下内容,对应填入你设置的密码:
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.postgresql', 'NAME': 'sarah_disquaires', 'USER': 'sarra', 'PASSWORD': '你刚才设置的sarra账户密码', 'HOST': '127.0.0.1', 'PORT': '5432', } }
步骤3:执行迁移启动服务
配置修改完成后,依次执行以下命令:
python manage.py makemigrations python manage.py migrate python manage.py runserver
特殊情况处理
如果调整后仍报错,打开PostgreSQL安装目录下data文件夹中的pg_hba.conf配置文件,确认IPv4本地连接的认证方式为scram-sha-256或md5:
host all all 127.0.0.1/32 scram-sha-256
修改配置后重启PostgreSQL系统服务,再重新启动Django即可。
内容的提问来源于stack exchange,提问作者Sarah
相关产品推荐
相关产品推荐

