當我嘗試從主機系統上的 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