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

执行Django makemigrations遇PostgreSQL密码认证失败求助

解决PostgreSQL密码认证失败及Django数据库连接问题

问题重现

执行Django迁移命令:

(venv) ubuntu@ip-172-31-44-136:~/easy_django_repo$ python manage.py makemigrations

触发错误:

/home/ubuntu/venv/lib/python3.10/site-packages/django/core/management/commands/makemigrations.py:143: RuntimeWarning: Got an error checking a consistent migration history performed for database connection 'default': connection to server at "localhost" (127.0.0.1), port 5432 failed: FATAL:  password authentication failed for user "diEvaR6s52EqJv"
connection to server at "localhost" (127.0.0.1), port 5432 failed: FATAL:  password authentication failed for user "diEvaR6s52EqJv"

  warnings.warn(
No changes detected

尝试修改数据库用户和系统postgres密码后,执行连接命令仍失败:

(venv) ubuntu@ip-172-31-44-136:/etc/postgresql/14/main$  psql -U postgres
Password for user postgres:

错误信息:

psql: error: connection to server on socket "/var/run/postgresql/.s.PGSQL.5432" failed: FATAL: password authentication failed for user "postgres"

解决步骤

1. 修正PostgreSQL认证配置

编辑PostgreSQL的pg_hba.conf配置文件:

sudo nano /etc/postgresql/14/main/pg_hba.conf

找到本地连接相关配置项,将postgres和diEvaR6s52EqJv用户的认证方式改为md5(密码认证):

# "local" is for Unix domain socket connections only
local   all             postgres                                md5
local   all             diEvaR6s52EqJv                          md5
# IPv4 local connections:
host    all             all             127.0.0.1/32            md5

修改完成后重启PostgreSQL服务:

sudo systemctl restart postgresql

2. 重置数据库用户密码

跳过系统密码验证,直接重置postgres数据库用户密码:

sudo -u postgres psql -c "ALTER USER postgres WITH PASSWORD '你的新密码';"

同步重置Django使用的数据库用户密码:

sudo -u postgres psql -c "ALTER USER diEvaR6s52EqJv WITH PASSWORD 'Django配置中对应的密码';"

3. 核对Django数据库配置

确保项目settings.py中的数据库配置与重置后的密码一致:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': '你的数据库名称',
        'USER': 'diEvaR6s52EqJv',
        'PASSWORD': '刚才重置的Django数据库用户密码',
        'HOST': 'localhost',
        'PORT': '5432',
    }
}

4. 测试连接与迁移

先测试postgres用户本地连接:

psql -U postgres -d postgres

输入重置后的密码,确认能正常进入psql终端。

再测试Django数据库连接:

(venv) ubuntu@ip-172-31-44-136:~/easy_django_repo$ python manage.py dbshell

连接成功后,重新执行迁移命令:

python manage.py makemigrations
python manage.py migrate

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 19:25:02