Tidak dapat terhubung ke PostgreSQL di tamu VirtualBox

11

Ketika saya mencoba untuk terhubung dari klien PostgreSQL pada sistem host ke server PostgreSQL pada sistem tamu VirtualBox, saya mendapatkan pesan "upaya koneksi gagal".

Sistem host adalah Windows XP. Saya menjalankan VirtualBox 3.1.2. Sistem tamu adalah Ubuntu 9,10 Karmic Koala dengan PostgreSQL 8.4.

Saya telah meneruskan port 5432 di VirtualBox seperti yang dijelaskan dalam manual dan posting ini . Ketika saya menjalankan vboxmanage getextradata vmname enumerate, saya mendapatkan entri ini (antara lain):

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

Saya mengkonfigurasi keamanan PostgreSQL di /etc/postgresql/8.4/main/pg_hba.conf dengan entri ini:

# 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

Kemudian saya memuat kembali PostgreSQL dengan sudo /etc/init.d/postgresql-8.4 reload.

Hanya untuk tujuan diagnostik , saya telah menonaktifkan firewall Windows dan firewall Ubuntu saya ( sudo ufw disable).

Adakah yang tahu langkah apa yang saya lewatkan?

Don Kirkby
sumber

Jawaban:

12

OK, saya menemukan langkah yang terlewat berkat pos ini .

Saya lupa mengatur pengaturan listen_addresses di postgresql.conf. Saya menggunakan nilai ini, tetapi bisa lebih dibatasi:

listen_addresses = '*'

Hanya untuk memperjelas, ketika Anda terhubung ke PostgreSQL dari host, gunakan localhost sebagai server dan 5432 sebagai port. VirtualBox akan meneruskan port itu ke tamu.

Saya juga menyadari bahwa beberapa pengaturan mengharuskan Anda untuk me-restart PostgreSQL bukan hanya memuat ulang saja. Perintahnya adalah:

sudo /etc/init.d/postgresql-8.4 restart
Don Kirkby
sumber
1
Setelah melalui beberapa tutorial di web untuk mendapatkan petunjuk, DAN menjalankan systemctl reload postgresql, systemctl restart postgresqlinilah yang akhirnya melakukannya untuk saya.
Amani Kilumanga