Аутентификация не прошла, когда я использую postgresql с django

ОС: AWS linux django3.2.7 python 3.7 psql (PostgreSQL) 13.3

Я пытаюсь использовать postgresql с django. Я изменил set.py следующим образом:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        'NAME': 'dbname',
        'USER': 'postgres',
        'PASSWORD': 'postgres',
        'HOST': 'localhost',
        'PORT': '5432',
    }
}

Я создал пароль для postgre и успешно вошел в систему как этот пользователь.

$ sudo su - postgres 
Last failed login: Sun Sep 26 18:21:57 JST 2021 on pts/4
There were 6 failed login attempts since the last successful login.
-bash-4.2$ psql
Password for user postgres: 
psql (13.3)
Type "help" for help.

postgres=# 

Однако, когда я попытался выполнить следующее:

$ python3 manage.py runserver

Я получил эту ошибку:

django.db.utils.OperationalError: FATAL:  Ident authentication failed for user "postgres"

Я не уверен, в чем проблема, и хотел бы знать, как я могу это исправить.

Заранее спасибо!

Имя вашей базы данных - "postgres", вы можете увидеть в psql bash (postgres=#), но вы установили его как "dbname" в настройках

Вы настроены на использование аутентификации ident, а не пароля. Установка пароля для пользователя не изменит этого - назначенный пароль просто останется неиспользованным. Если вы хотите использовать парольную аутентификацию, вам нужно изменить pg_hba.conf, чтобы указать ее, либо md5, либо "scram-sha-256".

В качестве альтернативы вы можете научиться правильно использовать ident, если это то, чего хочет от вас ваш фреймворк.

Я установил пароль для пользователя с помощью 'ALTER .... С ЗАШИФРОВАННЫМ ПАРОЛЕМ'? И тогда проблема была решена!

Вернуться на верх