Назад | Перейти на главную страницу

FATAL: аутентификация пароля не удалась для пользователя, которого я только что создал, с правильным паролем

Я установил postgres с участием Django следуя этому руководству

Здесь я создал базу данных и пользователя в postgres командная строка :

CREATE DATABASE myProject;
CREATE USER myUser WITH PASSWORD '1234'; 

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

#connect through python
import psycopg2
psycopg2.connect("dbname=myProject user=myUser host=localhost password=1234 port=5432")

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/data/project/venv/lib/python3.6/site-packages/psycopg2/__init__.py", line 130, in connect
    conn = _connect(dsn, connection_factory=connection_factory, **kwasync)
psycopg2.OperationalError: FATAL:  password authentication failed for user "myUser"
FATAL:  password authentication failed for user "myUser"

В этом вопросе я заменил свои настоящие имена проектов, имя пользователя и пароль. Но я дважды, трижды проверил, и все имена / пароли, которые я записываю, верны.

Как я получаю запрос неверного пароля? Как я могу это исправить?

РЕДАКТИРОВАТЬ: Содержимое моего pg_hba.conf файл:

# Database administrative login by Unix domain socket
local   all             postgres                                peer

# TYPE  DATABASE        USER            ADDRESS                 METHOD

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

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

Таким образом, создание базы данных и пользователя следующим образом:

CREATE DATABASE myProject;
CREATE USER myUser WITH PASSWORD '1234';

Означает то же самое, что и это:

CREATE DATABASE myproject;
CREATE USER myuser WITH PASSWORD '1234';