我将MongoDb安装在两台Ubuntu 16虚拟机上,这两台虚拟机都托pipe在Google云计算引擎上的同一networking上。 连接实例具有内部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为testing目的,没有结果。
在任一实例上运行mongo
都会正确地连接到它自己的mongodb服务,所以它们被安装,运行和运行。
在数据库实例上, netstat -a | grep :27017
netstat -a | grep :27017
显示它正在正确聆听。 ( https://gyazo.com/0f4fb3c49a51f6886ff4ccb2d44a132a )
在数据库实例上,编辑/etc/mongod.conf
中的configuration文件被编辑,所以bind_ip
也具有所述实例的内部IP。 ( https://gyazo.com/20fb669506e7e67ef49fdcf9af6df144 )我也尝试0.0.0.0用于testing目的,没有结果。
从连接实例运行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已closures。 ( https://gyazo.com/7ccd905db5b9946d616176b9ab75479c )
我彻底失败了,请帮我一下? <
您的mongodb服务器只能监听本地主机地址(127.0.0.1),而不是INADDR_ANY(在netstat
显示为*:27017
)。
像这个问题一样,你需要在你的mongod.conf
设置bind_ip = 0.0.0.0
。
感谢E.安德森的链接,我设法解决了这个问题。 突然把这个变成了重复。 但是,这个答案和链接中的答案都不是“正确的”。
在mongod.conf
设置bind_ip=0.0.0.0
的解决方案是相当危险的,此外,它不起作用。 但是,查杀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” "But I still dont get it. Why this did not work when I modified mongo.conf
“也适用于我。 我不明白,但是,它肯定是手动给它一个IP地址来收听。