django.db.utils.OperationalError: FATAL: password authentication failed for user "postgres" Django数据库操作错误:致命错误,用户“postgres”的密码验证失败。

3

我的设置是本地所有的 @authmethodlocal@。

就像我无法进入我的用户 "postgres" 或 "ladonna"。

我正在运行 python3 manage.py runserver。

本地主机、5432 等都是默认值。

File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/psycopg2/__init__.py", line 126, in connect
    conn = _connect(dsn, connection_factory=connection_factory, **kwasync)
django.db.utils.OperationalError: FATAL:  password authentication failed for user "postgres"

1
正如错误提示所说,您没有提供密码或提供的密码不正确。 - Simas Joneliunas
"@authmethodlocal@" 是 initdb 用于构建真正的 pg_hba.conf 的模板文件的一部分。如果将其放入您的真实 pg_hba.conf 中,该数据库将拒绝启动。 - jjanes
2个回答

2
用户postgres默认没有数据库密码。因此,请检查文件/etc/postgresql/10/main/pg_hba.conf:并将其更改为
local   all         postgres                          peer

在psql shell中,您可以为用户postgres设置密码。

ALTER USER postgres PASSWORD 'yourPassword';

设置密码后,为用户postgres在django设置中添加密码。


我执行了 local all postgres peer 命令,为了访问 psql shell 我执行了 docker-compose run --rm main_postgres_service_name psql -h main_postgres_service_name -U postgres_user -d postgres_database 命令,然后它要求输入密码,但是当我输入密码时,它会显示 django.db.utils.OperationalError: FATAL: password authentication failed for user "postgres" - Farhang Amaji

0

这个错误不是由Django引起的,而是来自PostgreSQL,它表示连接到服务器失败,因为密码认证失败。请检查您在Django settings.py中输入的用户的密码。

如果这不起作用,有时您需要在pg_hba.conf文件中进行一些更改。请访问xTuple Admin Guide - Edit your pg_hba.conf file

如果这仍然无效,您可以使用命令检查此端口的工作情况。

sudo netstat -plunt |grep postgres

并在您的settings.py中更改端口。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接