我在两台Ubuntu 16虚拟机上安装了MongoDb,这两台虚拟机都托管在Google Cloud的计算引擎上的同一网络上。连接实例具有内部IP 10.132.0.2,数据库实例具有10.132.0.3。 (https://gyazo.com/59f9086591a1d6673e8194a50fff51e1)
我已经为我要连接的实例打开了tcp 27017。我使用gcloud控制台命令添加了这个。 (https://gyazo.com/0d158aa735c6967e278fac63d598721f) 我也试过打开tcp:1-65535; udp:1-65535进行测试,没有结果。
在任一实例上运行mongo
都会正确连接到它自己的mongodb服务,因此它们已经安装,运行和运行。
在数据库实例上,netstat -a | grep :27017
显示其正确收听。
(https://gyazo.com/0f4fb3c49a51f6886ff4ccb2d44a132a)
在数据库实例上,编辑了/etc/mongod.conf
处的配置文件,因此bind_ip
也具有所述实例的内部IP。
(https://gyazo.com/20fb669506e7e67ef49fdcf9af6df144)
我也尝试过0.0.0.0用于测试目的,没有结果。
从连接实例运行mongo 10.132.0.3
会产生Failed to connect to 10.132.0.3:27017, reason: errno:111 Connection refused
。
(https://gyazo.com/9e5aec732e3f09cbfa62a4d78df3620f)
在连接实例上运行nmap -p 27017 10.132.0.3
显示端口27017已关闭。
(https://gyazo.com/7ccd905db5b9946d616176b9ab75479c)
我完全失去了,请帮助我吗? :其中
答案 0 :(得分:1)
您的mongodb服务器仅侦听本地主机地址(127.0.0.1),而不是INADDR_ANY(在|----------| udp tunnel |----------|
| Server |----------------------| Client |
| 10.8.0.1==========tcp=============10.8.0.2 |
| |----------------------| |
|----------| |----------|
中显示为*:27017
)。
Like this question,您似乎需要在netstat
中设置bind_ip = 0.0.0.0
。
答案 1 :(得分:0)
感谢E. Anderson的链接,我设法解决了这个问题;突然把它变成了副本。但是,这个答案和链接中的答案都不是正确的"。
在bind_ip=0.0.0.0
中设置mongod.conf
的解决方案相当危险,此外,它不起作用。但是,杀死mongodb服务,然后手动运行mongod --bind_ip 10.132.0.3
实际上允许我的两个实例连接。
其中..意味着javadude在另一个帖子中回复说"But I still dont get it. Why this did not work when I modified mongo.conf
文件接受bind_ip 0.0.0.0"`也适合我。我没有得到它,但是,它肯定能够手动给它一个IP地址来听。