12

正如标题中所说,我试图从 Win7 主机访问在 Linux Centos 5.8 中建立的 Postgres 9.3,它位于同一台机器上的 VirtualBox 中。我正在尝试从 PGAdmin 访问它,当我从 Win7 服务启动 Postgre 时一切正常,因此 PGAdmin 配置良好。

我尝试了什么?我已经阅读了很多关于这个主题的文章,甚至在这个论坛上也有一些问题,但没有任何效果。我有:

  1. 在 VirtualBox GUI 中切换到 NAT 并转发端口 5432
  2. 在 postgresql.conf 文件中设置 listenadresses = '*'
  3. 将 host all 所有 10.0.2.1/24 md5 行放在 pg_hba.conf 文件中
  4. 在win7防火墙设置中放5432端口入出站规则
  5. 使用 #service iptables stop 禁用 linux 防火墙

顺便提一下。在虚拟linux中启动服务时,我可以从linux访问它,因此服务正确启动。问题是 Windows 看不到该服务。当从 linux 启动服务时,我可以在 Win 中启动相同的服务,反之亦然,尽管端口 5432 应该被占用。

对我来说最可疑的部分是第 3 点),因为我不确定我是否在规则中设置了好的地址。该地址因文章而异,如果有人可以根据我的网络向我解释如何确定将哪个地址(或范围)放在那里,我将不胜感激。如果可能的话,或者其他一些建议。谢谢。

4

3 回答 3

11

解决了。

更换:

“host all all 10.0.2.1/24 md5”和“host all all 0.0.0.0/0 trust”解决了它。

于 2013-08-08T09:22:09.567 回答
5

在我的情况下,添加以下行pg_hba.conf就足够了:

host    all    all    10.0.0.0/16    md5

然后重新启动:

sudo /etc/init.d/postgresql restart
于 2015-09-02T11:26:59.287 回答
1

Filip 的解决方案有效,但您可以进一步调整它。
首先,在 VM 中启用 Adapter 2 并将其设置为 Host-only Adapter:

在此处输入图像描述

其次去你的主机并找到它的IP地址。
这可以通过在 Windows 主机上运行 ipconfig 来找到。

现在您需要在 VMBox 中编辑两个文件。

首先是 postgresql.conf

sudo nano /etc/postgresql/<version>/main/postgresql.conf

并添加以下行:

listen_addresses = '*'

保存它然后编辑 pg_hba.conf

sudo nano /etc/postgresql/<version>/main/pg_hba.conf

在这里你需要添加你的主机 ip(在我的例子中是 192.168.56.1:

host    all             all             192.168.56.1/0          trust

保存并重新启动 postgresql

sudo /etc/init.d/postgresql restart

现在您可以使用 pgadmin 连接到 vm postgresql。

方便!

于 2021-08-19T17:01:52.320 回答