No se puede conectar a PostgreSQL en el invitado VirtualBox

11

Cuando intento conectarme desde un cliente PostgreSQL en el sistema host al servidor PostgreSQL en un sistema invitado VirtualBox, recibo un mensaje de "intento de conexión fallido".

El sistema host es Windows XP. Estoy ejecutando VirtualBox 3.1.2. El sistema invitado es Ubuntu 9.10 Karmic Koala con PostgreSQL 8.4.

Reenvié el puerto 5432 en VirtualBox como se describe en el manual y esta publicación . Cuando corro vboxmanage getextradata vmname enumerate, obtengo estas entradas (entre otras):

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

Configuré la seguridad de PostgreSQL en /etc/postgresql/8.4/main/pg_hba.conf con 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

Luego volví a cargar PostgreSQL con sudo /etc/init.d/postgresql-8.4 reload.

Solo para fines de diagnóstico , he desactivado mi firewall de Windows y mi firewall de Ubuntu ( sudo ufw disable).

¿Alguien sabe qué pasos me he perdido?

Don Kirkby
fuente

Respuestas:

12

OK, encontré el paso perdido gracias a esta publicación .

Se me había olvidado establecer la configuración listen_addresses en postgresql.conf. Estoy usando este valor, pero podría estar más restringido:

listen_addresses = '*'

Solo para aclarar, cuando se conecta a PostgreSQL desde el host, use localhost como el servidor y 5432 como el puerto. VirtualBox reenviará ese puerto al invitado.

También me di cuenta de que algunas configuraciones requieren que reinicie PostgreSQL en lugar de simplemente volver a cargarlo. El comando es:

sudo /etc/init.d/postgresql-8.4 restart
Don Kirkby
fuente
1
Después de pasar por varios tutoriales en la web para obtener pistas, Y ejecutar systemctl reload postgresql, systemctl restart postgresqles lo que finalmente lo hizo por mí.
Amani Kilumanga