Quando tento conectar-me de um cliente PostgreSQL no sistema host ao servidor PostgreSQL em um sistema convidado VirtualBox, recebo uma mensagem "falha na tentativa de conexão".
O sistema host é o Windows XP. Estou executando o VirtualBox 3.1.2. O sistema convidado é Ubuntu 9.10 Karmic Koala com PostgreSQL 8.4.
Encaminhei a porta 5432 no VirtualBox conforme descrito no manual eesta postagem. Quando executo 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
Configurei a segurança do PostgreSQL em /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, desativei meu firewall do Windows e meu firewall do Ubuntu ( sudo ufw disable
).
Alguém sabe quais etapas eu perdi?
Responder1
OK, encontrei a etapa perdida graças aesta postagem.
Eu tinha esquecido de definir a configuração listen_addresses no postgresql.conf. Estou usando esse valor, mas poderia ser mais restrito:
listen_addresses = '*'
Só para esclarecer, ao 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