Я изучаю MongoDBUniversityM101P: MongoDB для разработчиков курс.«Этот узел не был запущен с опцией replSet»
Я использую WiredTiger на MongoDB 3,2.
Я в настоящее время по теме наборы реплик.
Курса требует создать набор реплик, используя следующий код:
mongod --replSet rs1 --logpath "1.log" --dbpath /data/rs1 --port 27017 --fork
Но я использую Windows, который не поддерживает fork
, поэтому использование this сути (в соответствии с рекомендациями курса администратором) я провел эти линии одновременно в 3-х различных консолей после того, как я создал каталоги (с mongod бега):
mongod --replSet rs1 --logpath "1.log" --dbpath rs1 --port 27018 --smallfiles --oplogSize64
mongod --replSet rs1 --logpath "2.log" --dbpath rs2 --port 27019 --smallfiles --oplogSize64
mongod --replSet rs1 --logpath "3.log" --dbpath rs3 --port 27020 --smallfiles --oplogSize64
что все, кажется, работает нормально; Я вижу, что каталоги были заполнены, и файлы журнала, все из которых показывают «ожидание соединения» с соответствующим номером порта.
Наконец, я бегу следующий код, чтобы объединить серверы в виде набора реплик:
config = {_id: "rs1", members: [
{ _id: 0, host: "localhost:27018"},
{ _id: 1, host: "localhost:27019"},
{ _id: 2, host: "localhost:27020"}
]
}
rs.initiate(config)
rs.status()
Который метания:
"errmsg" : "This node was not started with the replSet option",
"code" : 76
Что я не могу получить мою голову вокруг, как и Я четко использовал параметр --replSet
для каждого сервера и действительно предоставлял такое же имя replSet, что и в конфигурационном файле.
Я рассмотрел другие вопросы по этой теме, но их немного, и я не могу найти адрес и решить эту проблему для меня. This один утверждает, что выглядит очевидным из ошибки: мой конфигурационный файл должен включать в себя --replSet=rs1
, но от чтения documentation мне дает впечатление, что _id
от конфигурации я определила для этой цели служит:
_id
Type: stringThe name of the replica set. Once set, you cannot change the name of a replica set.
_id must be identical to the replication.replSetName or the value of –replSet specified to mongod on the command line.
Кроме того, это ясно показано, что он функционирует правильно в демонстрационных видеоматериалах курса именно так, как я пытаюсь его использовать.
Я нахожусь на своем остроумие и очень ценю помощь.
Джейк