Я хочу сделать что-то очень простое: создать базу данных PostgreSQL и затем подключиться к ней, используя psql
.Вот что я сделал:
sudo apt install postgresql-9.6
(в Ubuntu 18.04) sudo -su postgres
(запустить оболочку для пользователя системы postgres) createuser -P foo
(создать пользователя и запросить пароль для этого пользователя) createdb -O foo foo
(создать базу данных, принадлежащую ранее созданному пользователю)
Все это работало без нареканий, ошибок нетв любом месте.И все же, когда я пытаюсь подключиться к базе данных, используя psql -h localhost -U foo foo
, я не могу получить доступ к базе данных (пароль определенно правильный).Сообщение об ошибке: psql: FATAL: password authentication failed for user "foo"
/etc/postgresql/9.6/main/pg_hba.conf
выглядит следующим образом:
local all postgres peer
local all all peer
host all all 127.0.0.1/32 md5
host all all ::1/128 md5
Все это выглядит хорошо для меня, но оно просто не работает.Что мне здесь не хватает?
Я тоже пробовал alter user foo valid until 'infinity'
.И хотя команда выполнена успешно, это не помогло с проблемой.
// edit: я заметил что-то странное в этой проблеме.Когда я удаляю -h localhost
, аутентификация однорангового узла завершается неудачно (как и ожидалось, поскольку в системе нет пользователя foo
).Это оставляет три строки журналов в /var/log/postgresql/postgresql-9.6-main.log
.Однако, когда я использую флаг -h localhost
, журналы вообще не создаются.
// edit: я сейчас попробовал то же самое на компьютере с Fedora 28, и он работает, как и ожидалось.Я понятия не имею, в чем может быть разница (кроме операционной системы и postgres версии (10.5)