我正在尝试在云服务器上的本地e 1成员中配置具有2个成员的副本集。 我以这种方式从本地开始了这两个实例:
mongod --port 27117 --dbpath mongodb/rs0-0 --logpath mongodb/rs0-0/mongo.log --replSet rs0 --fork
mongod --port 27118 --dbpath mongodb/rs0-1 --logpath mongodb/rs0-1/mongo.log --replSet rs0 --fork
然后我在我的云服务器上启动了实例(打开端口后):
mongod --port 27119 --dbpath mongoRS/rs0-2 --logpath mongoRS/rs0-2/mongo.log --replSet rs0 --fork
所以,我启动服务器来配置副本集:
mongo --port 27117
rsconf = {
_id: "rs0",
members: [{
_id: 0,
host: "localhost:27117"
}]
}
rs.initiate( rsconf )
rs.add("localhost:27118")
直到现在一切都是正确的。但是当我尝试添加服务器实例时发生错误:
rs.add("myServer.it:27119")
“errmsg”:“副本集配置中的所有主机名都必须是localhost引用,否则必须是;发现3个中的2个”,
所以我认为我无法设置此配置或什么?
答案 0 :(得分:2)
尝试在replSet中添加不同的成员时,应避免使用localhost(特别是当您的服务器位于不同的环境中时)。
请尝试以下选项:
删除现有的replSet成员:rs.remove("localhost:27118")
尝试使用主机IP(本地服务器IP)添加服务器:rs.add("your_server_IP:27118")
使用公共IP添加云服务器:rs.add("Cloud_server_public_IP:27119")
还要确保从Localhost和Cloud服务器打开27117,27118和27119端口。
谢谢,
深