无法从主机连接到Vagrant中运行的PostgreSQL服务器

时间:2015-08-25 16:10:56

标签: postgresql vagrant

有类似的问题,但对我没有任何作用。我已将此行添加到pg_hba.conf

host all all all trust

这是我的postgresql.conf

listen_addresses = '*'

Vagrantfile中的我的网络设置是:

config.vm.network "private_network", ip: "10.0.0.0"
config.vm.network :forwarded_port, guest: 3000, host: 3000, auto_correct: true

当我尝试从主机连接时,我得到:

$ psql -h 10.0.0.0 -U <username> -d <database>
psql: could not connect to server: Permission denied
    Is the server running on host "10.0.0.0" and accepting
    TCP/IP connections on port 5432?

来自guest虚拟机的相同命令没有问题。我错过了什么?

[UPDATE]

我将私有网络ip更改为“192.168.1.77”(从一个工作示例中获取)并且它有效。仍然不知道为什么10.0.0.0不好,因为它在reserved private address space,所以我会留下未回答的问题。

3 个答案:

答案 0 :(得分:4)

您需要转发postgres端口,您只需转发3000,而不是5432

答案 1 :(得分:1)

我认为您无法连接的原因是技术上10.0.0.0是范围10.0.0.0/8的网络地址(10.255.255.255是广播地址,也应该无效)。每个范围的第一个地址是网络地址,不允许是可路由的主机(同样192.168.0.0也应该以相同的方式失败,因为它是一个16位的块。)

答案 2 :(得分:0)

除了在我的Vagrantfile中将端口5432转发到我的主机上的另一个端口之外,我还将以下内容添加到我的vagrant机器中的pg_hba.conf文件中,重新启动postgresql,最后允许我从主机连接:< / p>

host    all             all             0.0.0.0/0                md5

我在这里找到了建议:https://github.com/laravel/framework/issues/11339