无法在VirtualBox guest虚拟机上连接到PostgreSQL


11

当我尝试从主机系统上的PostgreSQL客户端连接到VirtualBox来宾系统上的PostgreSQL服务器时,收到“连接尝试失败”消息。

主机系统是Windows XP。我正在运行VirtualBox 3.1.2。来宾系统是带有PostgreSQL 8.4的Ubuntu 9.10 Karmic Koala。

我已经按照手册和这篇文章中的说明转发了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

然后我用重新加载了PostgreSQL sudo /etc/init.d/postgresql-8.4 reload

仅出于诊断目的,我禁用了Windows防火墙和Ubuntu防火墙(sudo ufw disable)。

有人知道我错过了哪些步骤吗?

Answers:


12

好的,感谢这篇文章,我找到了错过的一步。

我忘记了在postgresql.conf中设置listen_addresses设置。我正在使用此值,但可能会受到更多限制:

listen_addresses = '*'

为了澄清起见,当您从主机连接到PostgreSQL时,请使用localhost作为服务器,并使用5432作为端口。VirtualBox会将端口转发给来宾。

我还意识到某些设置要求您重新启动PostgreSQL,而不仅仅是重新加载它。该命令是:

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

1
在网上浏览了多个教程以获取提示并运行后systemctl reload postgresqlsystemctl restart postgresql终于为我做了。
Amani Kilumanga
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.