Я использую PostgreSQL 9.3 на Ubuntu 14.04 LTS. Это стандартный дистрибутив Postgres, доступный в apt. На разных форумах я нашел несколько потоков, которые указывают, что правильный способ разрешить удаленные psql-подключения к базе данных - добавить следующую строку в /etc/postgresql/9.3/main/pg_hba.conf:
host all all 0.0.0.0/0 md5
И установить это в /etc/postgresql/9.3/main/postgresql.conf:
listen_addresses = '*'
затем перезапустить базу данных («sudo service postgresql restart»)
Я сделал это и все еще получаю следующую ошибку при попытке подключиться к этой БД с другого сервера:
psql -h <the db host> -p 5433 -d the_db the_user
$> Password for user the_user:
$> (I enter the pw)
$> psql: FATAL: password authentication failed for user "the_user"
$> FATAL: password authentication failed for user "the_user"
Обратите внимание, что пароль однозначно правильный, так как следующий код, выполненный на хост-компьютере БД, успешно вводит меня:
$> psql -h localhost -d the_db the_user
$> Password for user the_user:
$> (I enter the exact same pw as above)
$> psql (9.3.5, server 9.1.13)
$> Type "help" for help.
$>
<the psql shell session begins>
Я затрудняюсь понять, в чем здесь дело, так как конфигурация кажется правильной, пароль верным, а хост-машина, похоже, принимает удаленное соединение (для приглашения) и просто не работает в точке аутентификация. Пожалуйста, дайте мне знать, если у вас есть идеи о том, как заставить это работать. Благодарю.
источник
pg_hba.conf
.Ответы:
В первом сеансе вы используете порт 5433, во втором - по умолчанию 5432. Вероятно, у вас установлено более одного кластера (возможно, они поставляются с другой версией пакета PostgreSQL). Я рекомендую вам отбросить кластеры, которые вы не используете,
pg_dropcluster
и убедиться, что вы подключаетесь к правильному.(не забудьте перепроверить, прежде чем бросать вещи, если есть базы данных с достойной информацией внутри)
источник