Я использую 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")

Я сделал это и все еще получаю следующую ошибку при попытке подключиться к этой БД с другого сервера:

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>

Я затрудняюсь понять, в чем здесь дело, так как конфигурация кажется правильной, пароль верным, а хост-машина, похоже, принимает удаленное соединение (для приглашения) и просто не работает в точке аутентификация. Пожалуйста, дайте мне знать, если у вас есть идеи о том, как заставить это работать. Благодарю.

1 ответ1

2

В первом сеансе вы используете порт 5433, во втором - по умолчанию 5432. Вероятно, у вас установлено более одного кластера (возможно, они поставляются с другой версией пакета PostgreSQL). Я рекомендую вам удалить кластеры, которые вы не используете, с pg_dropcluster и убедиться, что вы подключаетесь к правильному.

(не забудьте перепроверить, прежде чем бросать вещи, если есть базы данных с достойной информацией внутри)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .