Não é possível conectar ao PostgreSQL no convidado do VirtualBox

11

Quando tento conectar-me de um cliente PostgreSQL no sistema host ao servidor PostgreSQL em um sistema convidado VirtualBox, recebo a mensagem "falha na tentativa de conexão".

O sistema host é o Windows XP. Estou executando o VirtualBox 3.1.2. O sistema convidado é o Ubuntu 9.10 Karmic Koala com PostgreSQL 8.4.

Encaminhei a porta 5432 no VirtualBox, conforme descrito no manual e neste post . Quando corro vboxmanage getextradata vmname enumerate, recebo estas entradas (entre outras):

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

Eu configurei a segurança do PostgreSQL no /etc/postgresql/8.4/main/pg_hba.conf com estas entradas:

# 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

Então recarreguei o PostgreSQL com sudo /etc/init.d/postgresql-8.4 reload.

Apenas para fins de diagnóstico , desabilitei o firewall do Windows e o firewall do Ubuntu ( sudo ufw disable).

Alguém sabe quais os passos que eu perdi?

Don Kirkby
fonte

Respostas:

12

OK, encontrei a etapa perdida graças a este post .

Eu tinha esquecido de definir a configuração listen_addresses no postgresql.conf. Estou usando esse valor, mas poderia ser mais restrito:

listen_addresses = '*'

Apenas para esclarecer, quando você se conectar ao PostgreSQL a partir do host, use localhost como servidor e 5432 como porta. O VirtualBox encaminhará essa porta para o convidado.

Também percebi que algumas configurações exigem que você reinicie o PostgreSQL em vez de apenas recarregá-lo. O comando é:

sudo /etc/init.d/postgresql-8.4 restart
Don Kirkby
fonte
1
Depois de passar por vários tutoriais na Web para obter dicas, E executando systemctl reload postgresql, systemctl restart postgresqlé o que finalmente fez isso por mim.
Amani Kilumanga