有类似的问题,但对我没有任何作用。我已将此行添加到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,所以我会留下未回答的问题。
答案 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