Репликация локального хоста mongodb - PullRequest
1 голос
/ 20 сентября 2019

Я хочу настроить replicasetup на моем локальном компьютере, я использую экземпляры mongodb (mongod1.conf, mongod2.conf), rs инициировал mongo1 на порту 27018, и я хочу добавить членов к 27018, rs.add('ThinkPad-X230: 27019') выдает ошибку, называемую

командами:

mongod --replSet Replicaset1 --dbpath home/data --port 27018
mongo --port 27018
>> rs.initiate()
>> rs.add("ThinkPad-X230:27019")

mongod --dbpath home/data2 --port 27019

mongo --port 27019

Я проверил хост db.serverStatus (). В 27019 порт и добавление имени хоста «ThinkPad-X230: 27019» для rs.add () членов, которые выдают ошибку.

{
    "ok" : 0,
    "errmsg" : "Either all host names in a replica set configuration must be localhost references, or none must be; found 1 out of 2",
    "code" : 103,
    "codeName" : "NewReplicaSetConfigurationIncompatible",
    "operationTime" : Timestamp(1568943205, 1),
    "$clusterTime" : {
        "clusterTime" : Timestamp(1568943205, 1),
        "signature" : {
            "hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="),
            "keyId" : NumberLong(0)
        }
    }
}

1 Ответ

0 голосов
/ 29 сентября 2019

Когда вы начали свой первый экземпляр mongod с параметром --replSet Replicaset1, он настроен как часть набора реплик Replicaset1.

И когда вы инициализировали набор реплик, этот экземпляр былдобавлен в реплику, установленную в качестве члена.Ниже приведен фрагмент вывода rs.status()

{
    "_id" : 0,
    "name" : "localhost:27018",
    "health" : 1,
    "state" : 1,
    "stateStr" : "PRIMARY",
    "uptime" : 228,
    "optime" : {
        "ts" : Timestamp(1569751005, 1),
        "t" : NumberLong(1)
    },
    "optimeDate" : ISODate("2019-09-29T09:56:45Z"),
    "electionTime" : Timestamp(1569750830, 2),
    "electionDate" : ISODate("2019-09-29T09:53:50Z"),
    "configVersion" : 3,
    "self" : true
}

. Как видите, имя члена равно "localhost:2018".

Итак, когда вы пытаетесь добавить другого члена в эту репликуустановить rs.add('ThinkPad-X230:27019'), это дает вам следующую ошибку, которая является допустимой ошибкой, которая должна быть выдана, поскольку один элемент "localhost:2018", а другой, который вы пытаетесь добавить, - "ThinkPad-X230:27019", и оба должны быть localhost.

"errmsg" : "Either all host names in a replica set configuration must be localhost references, or none must be; found 1 out of 2"

Попробуйте добавить участника, используя следующую команду:

rs.add("localhost:27019")

И он будет успешно добавлен.

...