Я могу войти в систему с 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"
Этот вызов:
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
Этот вызов:
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