PSQL не может войти в систему с-h опцией

Я могу войти в систему с 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"
2
задан 26 February 2018 в 19:11

1 ответ

Этот вызов:

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

0
ответ дан 2 December 2019 в 07:59

Другие вопросы по тегам:

Похожие вопросы: