【问题标题】:Postgresql - password authentication failed for userPostgresql - 用户的密码认证失败
【发布时间】:2021-02-03 04:09:36
【问题描述】:

嗯,我一直在做一个关于 Django 的项目,但是我的一个朋友遇到了一个问题,所以他把他的项目(整个文件夹)发给了我。无论如何,我尝试运行服务器,但没有成功。我试图从设置文件中更改密码和用户名,当我尝试访问用户时,用户名被更改(因为 sql shell 识别它,我认为¯_(ツ)_/¯),但每当我尝试使用我在设置文件中写入的密码登录它会产生以下错误:

django.db.utils.OperationalError: FATAL: password authentication failed for user "Youssef"

这是 settings.py 文件中的 DATABASE 部分:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': 'Boards_django',
        'USER': 'Youssef',
        'PASSWORD': '000000',
        'HOST': 'localhost',
        'PORT': '5432',
    }
}

顺便说一句,数据库被 PgAdmin4 识别:

知道我该怎么办吗???

旁注:我无法访问用户,因此我无法使用 postgresql 的任何命令 此外,当我尝试从 VS Code 运行服务器或在数据库上进行任何操作时,它会引发以下错误:

django.db.utils.OperationalError: FATAL: password authentication failed for user "Youssef"

这是pg_hba.conf中的数据

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     scram-sha-256
# IPv4 local connections:
host    all             all             127.0.0.1/32            scram-sha-256
# IPv6 local connections:
host    all             all             ::1/128                 scram-sha-256
# Allow replication connections from localhost, by a user with the
# replication privilege.
local   replication     all                                     scram-sha-256
host    replication     all             127.0.0.1/32            scram-sha-256
host    replication     all             ::1/128                 scram-sha-256

【问题讨论】:

  • 这个问题缺少所有重要信息:pg_hba.conf 中是什么,password_encryption 是什么,PostgreSQL 日志中的消息是什么。
  • 在哪里可以找到password_encryption ???和 PostgreSQL 日志???抱歉,我是 Django 新手?????? @LaurenzAlbe

标签: python django postgresql authentication pgadmin-4


【解决方案1】:

有几种可能:

  • 您使用了错误的密码

  • 没有为用户设置 SCRAM-SHA-256 密码

    这可能是因为没有设置密码,也可能是因为password_encryption 参数设置为md5,或者是因为在更改password_encryption 后密码尚未更改。

    查看当前设置:

    SHOW password_encryption;
    

    查看密码:

    SELECT rolpassword
    FROM pg_authid
    WHERE rolname = 'Youssef';
    

【讨论】:

  • 我有一个问题,我应该用我的用户登录他的项目吗(更改 settings.py 文件中的数据)?我不能只在我的设备上使用他用户的配置吗??
  • 我不知道你在说什么。这是数据库的问题,所以我给你一个数据库的答案……
【解决方案2】:

嗯,问题是我朋友的数据库有轻微的拼写差异,当我在 PgAdmin 页面中将它添加到我的数据库中时,它运行良好。

感谢任何试图提供帮助的人

【讨论】:

    猜你喜欢
    • 2015-12-16
    • 2018-04-21
    • 2021-12-23
    • 2019-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多