尝试将节点添加到副本集" rs0"在PRIMARY的mongo shell中使用rs.add()

时间:2017-12-12 14:11:15

标签: linux mongodb parse-platform mongo-shell mongodb-replica-set

实例是新的,没有数据,是使用Ubuntu 14.04上由Bitnami支持的Parse服务器在AWS Marketplace中创建的。

我尝试使用rs.add()添加节点但出现此错误:

rs0:PRIMARY> rs.add( "172.31.39.86:27017" )
{
    "ok" : 0,
    "errmsg" : "Quorum check failed because not enough voting nodes responded; required 2 but only the following 1 voting nodes responded: ip-172-31-44-97:27017; the following nodes did not respond affirmatively: 172.31.39.86:27017 failed with Failed attempt to connect to 172.31.39.86:27017; couldn't connect to server 172.31.39.86:27017 (172.31.39.86), connection attempt failed",
    "code" : 74
}

实例的PrivateIP我试图添加到ReplicaSet" rs0"是 172.31.39.86 ,当前PRIMARY实例的PrivateIP是 172.31.44.97

我所做的步骤描述如下:

  • SSH实例(分别在不同终端的两个实例中)

      

    ssh ubuntu @ InstancePublicIP -i KeyFileName

  • 关闭MongoDB(在两个实例中)

      

    sudo /opt/bitnami/ctlscript.sh stop

  • 通过添加replSet = rs0(在两个实例中)编辑 mongodb.conf 文件

      

    sudo nano /home/bitnami/stack/mongodb/mongodb.conf

看起来像这样:

dbpath=/opt/bitnami/mongodb/data/db
logpath=/opt/bitnami/mongodb/log/mongodb.log
logappend=true
bind_ip = 0.0.0.0
port = 27017
auth = true
setParameter = enableLocalhostAuthBypass=0
unixSocketPrefix=/opt/bitnami/mongodb/tmp
fork = true
setParameter = enableLocalhostAuthBypass=0
replSet = rs0
filePermissions = 0766
  • 重启MongoDB(在两个实例中)

      

    sudo /opt/bitnami/ctlscript.sh restart

  • 访问MongoDB(在其中一个实例中" 172.31.44.97"

      

    mongo admin --username root --password fromSystemLog

  • 启动复制集(在其中一个实例" 172.31.44.97" 的MongoDB shell中)

      

    rs.initiate()

  • 将节点添加到PRIMARY(在其中一个实例" 172.31.44.97" 的MongoDB shell中)

      

    rs.add(" 172.31.39.86")

1 个答案:

答案 0 :(得分:0)

当rs.add -process期间主节点无法连接该辅助节点时,会出现该错误消息。原因通常是目的地的防火墙,防止流量到SSH以外的任何其他端口。

如果转到(当前PRIMARY)mongodb节点的命令行并发出命令mongo --host 172.31.39.86:27017,则另一个mongo节点应该回答。如果没有,那么与该节点的连接不起作用或节点不工作。