Я могу войти в систему с psql, если я не использую-h опцию и отказавший с-h (ни один localhost или 127.0.0.1 работы). Не знайте что случилось :(
Информация: postgresql 10, человечность 16.04 в Windows 10.
Это - мой pg_hba.conf
local all postgres trust
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all md5
# IPv4 local connections:
host all all 127.0.0.1/32 trust
host all all 192.168.1.0/24 trust
# IPv6 local connections:
host all all ::1/128 trust
# Allow replication connections from localhost, by a user with the
# replication privilege.
local replication all trust
host replication all 127.0.0.1/32 trust
host replication all ::1/128 trust
и мои консольные журналы
(meta--fVnbZtTA) root@Deathwing:/mnt/d/xx.us/meta-# psql -U meta -W
Password for user meta:
psql (10.2 (Ubuntu 10.2-1.pgdg16.04+1))
Type "help" for help.
meta=> \q
(meta--fVnbZtTA) root@Deathwing:/mnt/d/xx.us/meta-# psql -h 127.0.0.1 -U meta -W
Password for user meta:
psql: FATAL: password authentication failed for user "meta"
(meta--fVnbZtTA) root@Deathwing:/mnt/d/xx.us/meta-# psql -h 127.0.0.1 -U meta
Password for user meta:
psql: FATAL: password authentication failed for user "meta"
Этот вызов:
psql -h 127.0.0.1 -U meta
должен соответствовать этой строке в pg_hba.conf:
host all all 127.0.0.1/32 trust
потому что строки тестируются в порядке файла, и он останавливается в первом соответствии (идущее соответствие TYPE+DATABASE+USERNAME+[CIDR unless TYPE=local]
, и та комбинация является первым соответствием для вышеупомянутого вызова.
trust
средство, что никакой пароль не будет требовать сервер, но что на самом деле происходит на Ваш вопрос, состоит в том, что пароль требуют, таким образом, существует противоречие между тем, что Вы получаете и Ваш pg_hba.conf
Возможно, Вы не редактируете pg_hba.conf
в правильном месте. Начиная с версии 10 postgresql имеет представление, которое отражает содержание файла, посмотрите
https://www.postgresql.org/docs/10/static/view-pg-hba-file-rules.html
Это представление может быть полезным для проверки, будут ли запланированные изменения в файле настройки аутентификации работать, или на диагностирование предыдущего отказа. Обратите внимание, что это просматривает отчеты на текущем содержании файла, не на том, что было в последний раз загружено сервером.
Вы могли бы свериться select * from pg_hba_file_rules order by line_number;
является ли содержание тем, что Вы ожидаете.
Также show hba_file
поскольку другая команда SQL сообщит, где сервер находит тот файл.
Также необходимо считать журналы сервера, чтобы заставить дополнительные детали об ошибках аутентификации, или отказ или успех перезагружать pg_hba.conf файл.
На Ubuntu журналы сервера находятся под /var/log/postgresql
если не настроено иначе в postgresql.conf