在本地和云服务器上配置副本集

时间:2017-03-13 15:14:00

标签: mongodb

我正在尝试在云服务器上的本地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个”,

所以我认为我无法设置此配置或什么?

1 个答案:

答案 0 :(得分:2)

尝试在replSet中添加不同的成员时,应避免使用localhost(特别是当您的服务器位于不同的环境中时)。

请尝试以下选项:

  1. 删除现有的replSet成员:rs.remove("localhost:27118")

  2. 尝试使用主机IP(本地服务器IP)添加服务器:rs.add("your_server_IP:27118")

  3. 使用公共IP添加云服务器:rs.add("Cloud_server_public_IP:27119")

  4. 还要确保从Localhost和Cloud服务器打开27117,27118和27119端口。

    谢谢,