Fil*_*lip 8 linux postgresql virtualbox windows-7
正如标题所述,从Win7主机开始,我正在尝试访问在同一台机器上的VirtualBox中的Linux Centos 5.8中建立的Postgres 9.3.我正试图从PGAdmin访问它,当我从Win7服务启动Postgre时一切正常,所以PGAdmin配置得很好.
我试过了什么?我已经阅读了很多关于这个主题的文章,甚至在这个论坛上也有一些问题,但没有任何效果.我有:
提一下.当在虚拟linux中启动服务时,我可以从linux访问它,因此服务正常启动.问题是Windows没有看到该服务.当从linux启动服务时,我可以在Win中启动相同的服务,反之亦然,尽管端口5432应该被占用.
对我来说最可疑的部分是第3点)因为我不确定我是否在规则中放置了好的地址.根据我的网络,这个地址因文章而异,如果有人能解释我如何确定放在那里的地址(或范围),我将不胜感激.或者如果可能的话,或者其他建 谢谢.
在我的情况下,添加以下行pg_hba.conf就足够了:
host all all 10.0.0.0/16 md5
Run Code Online (Sandbox Code Playgroud)
然后重新启动:
sudo /etc/init.d/postgresql restart
Run Code Online (Sandbox Code Playgroud)
Filip 的解决方案有效,但您可以进一步定制它。
首先,在VM中启用适配器2并将其设置为Host-only Adapter:

其次,转到您的主机并找到它的 IP 地址。
这可以通过在 Windows 主机中运行 ipconfig 来找到。
现在您需要在 VMBox 中编辑两个文件。
首先是postgresql.conf
sudo nano /etc/postgresql/<version>/main/postgresql.conf
Run Code Online (Sandbox Code Playgroud)
并添加以下行:
listen_addresses = '*'
Run Code Online (Sandbox Code Playgroud)
保存然后编辑pg_hba.conf
sudo nano /etc/postgresql/<version>/main/pg_hba.conf
Run Code Online (Sandbox Code Playgroud)
在这里你需要添加你的主机IP(在我的例子中是192.168.56.1:
host all all 192.168.56.1/0 trust
Run Code Online (Sandbox Code Playgroud)
保存并重启postgresql
sudo /etc/init.d/postgresql restart
Run Code Online (Sandbox Code Playgroud)
现在您可以使用 pgadmin 连接到 vm postgresql。
方便!