Не удается подключиться к PostgreSQL в гостевой системе VirtualBox

11

Когда я пытаюсь подключиться от клиента PostgreSQL в хост-системе к серверу PostgreSQL в гостевой системе VirtualBox, я получаю сообщение «попытка подключения не удалась».

Хост-система - Windows XP. Я использую VirtualBox 3.1.2. Гостевой системой является Ubuntu 9.10 Karmic Koala с PostgreSQL 8.4.

Я перенаправил порт 5432 в VirtualBox, как описано в руководстве и в этом посте . Когда я бегу vboxmanage getextradata vmname enumerate, я получаю эти записи (среди прочих):

Key: VBoxInternal/Devices/e1000/0/LUN#0/Config/pgsql/GuestPort, Value: 5432
Key: VBoxInternal/Devices/e1000/0/LUN#0/Config/pgsql/HostPort, Value: 5432
Key: VBoxInternal/Devices/e1000/0/LUN#0/Config/pgsql/Protocol, Value: TCP

Я настроил безопасность PostgreSQL в /etc/postgresql/8.4/main/pg_hba.conf со следующими записями:

# IPv4 local connections:
host    all         all         127.0.0.1/32          md5
host    all         all         192.168.1.0/24        md5
host    all         all         10.0.2.2/32        md5

Затем я перезагрузил PostgreSQL с помощью sudo /etc/init.d/postgresql-8.4 reload.

Только для диагностических целей я отключил брандмауэр Windows и брандмауэр Ubuntu ( sudo ufw disable).

Кто-нибудь знает, какие шаги я пропустил?

Дон Киркби
источник

Ответы:

12

Хорошо, я нашел пропущенный шаг благодаря этому посту .

Я забыл установить параметр listen_addresses в postgresql.conf. Я использую это значение, но оно может быть более ограниченным:

listen_addresses = '*'

Просто чтобы уточнить, когда вы подключаетесь к PostgreSQL с хоста, используйте localhost в качестве сервера и 5432 в качестве порта. VirtualBox перенаправит этот порт гостю.

Я также понял, что некоторые настройки требуют перезапуска PostgreSQL, а не просто его перезагрузки. Команда:

sudo /etc/init.d/postgresql-8.4 restart
Дон Киркби
источник
1
Пройдя через несколько учебных пособий в Интернете для подсказок и запуска systemctl reload postgresql, я systemctl restart postgresqlнаконец-то сделал это.
Амани Килуманга