Я могу успешно связаться с каждым пользователем, кроме одного. Я всегда получаю сообщение «Ошибка аутентификации пароля для пользователя» даже после изменения пароля. Это сработало до последнего перезапуска сервера. (может что-то испорчено?)
После некоторого времени попыток исправить эту проблему я решил просто создать нового пользователя. Однако у меня возникает та же проблема с любым новым пользователем, которого я создаю.
Я только что выполнил это:
postgres@server:~$ psql
psql (9.6.13)
Type "help" for help.
postgres=# CREATE USER test WITH PASSWORD 'test';
CREATE ROLE
postgres=# CREATE DATABASE test;
CREATE DATABASE
postgres=# GRANT ALL ON DATABASE test TO test;
GRANT
postgres=# \q
postgres@server:~$ psql -U test -d test -h localhost
Password for user test:
psql: FATAL: password authentication failed for user "test"
FATAL: password authentication failed for user "test"
Я почти уверен, что не ошибся здесь с паролем.
Мой pg_hba.conf содержит следующую строку:
host all all 127.0.0.1/32 md5
Я немного не понимаю, что мне делать, чтобы исправить эту проблему.
Я просто решил проблему. Иногда нужно просто записать и подумать пару секунд;)
Проблема заключалась в том, что ЧТО-ТО (не знаю, что до сих пор) в моей системе, похоже, запускает старую версию postgres при загрузке. Когда я использовал psql для создания пользователей, мне казалось, что я подключился через сокет домена unix к своему postgres 9.6.
Но когда я подключился с помощью «-h localhost», я подключился к экземпляру 9.4.
И очевидно, что этот старый экземпляр давно не использовался, поэтому у него было всего несколько старых пользователей.
Таким образом, фактическая ошибка заключалась не в неправильном пароле, а просто в отсутствии пользователя.
Теперь мне нужно отследить все, что запускает старый экземпляр postgres;)