Auf dem VirtualBox-Gast kann keine Verbindung zu PostgreSQL hergestellt werden

Auf dem VirtualBox-Gast kann keine Verbindung zu PostgreSQL hergestellt werden

Wenn ich versuche, von einem PostgreSQL-Client auf dem Hostsystem eine Verbindung zum PostgreSQL-Server auf einem VirtualBox-Gastsystem herzustellen, erhalte ich die Meldung „Verbindungsversuch fehlgeschlagen“.

Das Hostsystem ist Windows XP. Ich verwende VirtualBox 3.1.2. Das Gastsystem ist Ubuntu 9.10 Karmic Koala mit PostgreSQL 8.4.

Ich habe Port 5432 in VirtualBox weitergeleitet, wie im Handbuch beschrieben unddieser Beitrag. Wenn ich ausführe vboxmanage getextradata vmname enumerate, erhalte ich (unter anderem) diese Einträge:

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

Ich habe die PostgreSQL-Sicherheit in /etc/postgresql/8.4/main/pg_hba.conf mit diesen Einträgen konfiguriert:

# 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

Dann habe ich PostgreSQL mit neu geladen sudo /etc/init.d/postgresql-8.4 reload.

Nur für Diagnosezwecke, ich habe meine Windows-Firewall und meine Ubuntu-Firewall deaktiviert ( sudo ufw disable).

Weiß jemand, welche Schritte ich verpasst habe?

Antwort1

OK, ich habe den fehlenden Schritt gefunden dankdieser Beitrag.

Ich hatte vergessen, die Einstellung listen_addresses in postgresql.conf festzulegen. Ich verwende diesen Wert, aber er könnte eingeschränkter sein:

listen_addresses = '*'

Nur zur Klarstellung: Wenn Sie vom Host aus eine Verbindung zu PostgreSQL herstellen, verwenden Sie localhost als Server und 5432 als Port. VirtualBox leitet diesen Port an den Gast weiter.

Mir ist auch aufgefallen, dass einige Einstellungen einen Neustart von PostgreSQL erfordern, anstatt es einfach neu zu laden. Der Befehl lautet:

sudo /etc/init.d/postgresql-8.4 restart

verwandte Informationen