PSQL не может войти с параметром -h

Я могу войти в систему с psql, если я не использую -h и не удалось с -h (ни localhost, ни 127.0.0.1 не работает). Не знаю, что не так: (

Информация: postgresql 10, ubuntu 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"
1
задан 26 February 2018 в 20:11

2 ответа

Этот вызов:

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
ответ дан 17 July 2018 в 19:58

Этот вызов:

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
ответ дан 23 July 2018 в 20:42

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

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