执行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
相关产品推荐
相关产品推荐

