У меня есть рабочий стол Kubuntu 14.10 с установленной базой данных PostgreSQL 9.4. Я изменил пароль для postgres
пользователя в базе данных, выполнив SQL:Может подключаться к postgres через localhost без пароля, но не через 127.0.0.1. Зачем?
ALTER USER postgres PASSWORD 'password';
И я могу подключиться к серверу БД по psql -h localhost -U postgres -W
и дает этот пароль но я также подключить без требования пароля по просто psql -h localhost -U postgres
.
С другой стороны, если я запустил psql -h 127.0.0.1 -U postgres
, он запрашивает у меня пароль, заданный ранее.
В чем разница между хостами localhost
и 127.0.0.1
и их методом входа в систему? Где он установлен? Я не вижу localhost
-связанных записей в файле pg_hba.conf
.
У вас есть файл .pgpass? –
Да. Когда я обдумал это, я ничего не нашел об этом файле. Это действительно отвечает на мой вопрос. Как я вижу, pgadmin3 создал этот файл, когда я вошел в подробности соединения там (и мне было любопытно, где пароль pgadmin хранит пароль ... хотя и не искал его). Если вы разместите это как правильный ответ, я приму его как правильно. – silmeth
Другое отличие состоит в том, что 'localhost' разрешает' :: 1' на некоторых системах или на другой эквивалент IPv6 или на несколько адресов. Любое из них означает, что '127.0.0.1' не будет соответствовать в' pg_hba.conf'. –