无法连接到 VirtualBox 客户机上的 PostgreSQL

无法连接到 VirtualBox 客户机上的 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

然后我用重新加载了 PostgreSQL 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

相关内容