無法在 VirtualBox guest 虛擬機器上連接到 PostgreSQL

無法在 VirtualBox guest 虛擬機器上連接到 PostgreSQL

當我嘗試從主機系統上的 PostgreSQL 用戶端連接到 VirtualBox 來賓系統上的 PostgreSQL 伺服器時,我收到一條「連線嘗試失敗」訊息。

主機系統為Windows XP。我正在運行 VirtualBox 3.1.2。來賓系統是 Ubuntu 9.10 Karmic Koala 和 PostgreSQL 8.4。

我已經按照手冊中的說明在 VirtualBox 中轉發了連接埠 5432這個帖子。當我運行時vboxmanage getextradata vmname enumerate,我得到這些條目(以及其他條目):

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

我使用以下條目在 /etc/postgresql/8.4/main/pg_hba.conf 中配置了 PostgreSQL 安全性:

# 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

然後我用sudo /etc/init.d/postgresql-8.4 reload.

僅用於診斷目的,我已停用 Windows 防火牆和 Ubuntu 防火牆 ( sudo ufw disable)。

有人知道我錯過了哪些步驟嗎?

答案1

好的,我找到了遺漏的步驟,感謝這個帖子

我忘記在 postgresql.conf 中設定listen_addresses 設定。我正在使用這個值,但它可能會受到更多限制:

listen_addresses = '*'

澄清一下,當您從主機連接到 PostgreSQL 時,請使用 localhost 作為伺服器,使用 5432 作為連接埠。 VirtualBox 會將該連接埠轉送給來賓。

我還意識到某些設定要求您重新啟動 PostgreSQL,而不僅僅是重新載入它。命令是:

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

相關內容