Ich studiere die MongoDBUniversityM101P: MongoDB für Entwickler natürlich."Dieser Knoten wurde nicht mit der Option replSet gestartet"
Ich verwende WiredTiger auf MongoDB 3.2.
Ich bin derzeit am Thema Replik-Sets.
Der Kurs erfordert ich ein Replikat mit dem folgenden Code erstellen:
mongod --replSet rs1 --logpath "1.log" --dbpath /data/rs1 --port 27017 --fork
Aber ich bin mit Windows, die nicht fork
nicht unterstützt, so this Kern mit (wie durch eine Kursleitung empfohlen) I liefen diese Leitungen gleichzeitig in drei verschiedenen Konsolen, nachdem ich die Verzeichnisse erstellt hatte (mit mongod Laufen):
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
, die alle gut zu funktionieren scheint; Ich kann sehen, dass die Verzeichnisse gefüllt sind, und die Protokolldateien, die alle "Warten auf Verbindung" mit der entsprechenden Portnummer anzeigen.
Schließlich Ich verwende den folgenden Code die Server als Replikat-Gruppe zu vereinen:
config = {_id: "rs1", members: [
{ _id: 0, host: "localhost:27018"},
{ _id: 1, host: "localhost:27019"},
{ _id: 2, host: "localhost:27020"}
]
}
rs.initiate(config)
rs.status()
Welche werfen wird:
"errmsg" : "This node was not started with the replSet option",
"code" : 76
Was ich nicht meinen Kopf um bekommen, wie Ich habe eindeutig die --replSet
Option für jeden Server verwendet und tatsächlich den gleichen replSet-Namen zur Verfügung gestellt, der in der Konfigurationsdatei verwendet wird.
Ich habe andere Fragen zu diesem Thema angeschaut, aber es gibt wenige, und keine, die ich finden kann Adresse und dieses Problem für mich zu lösen. This stellt man fest, was aus dem Fehler offensichtlich aussieht: meine Config-Datei --replSet=rs1
enthalten sollte, aber von den documentation Lesen ich den Eindruck habe, dass die _id
der Config I definiert haben diesen Zweck dient:
_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.
Darüber hinaus ist diese Es wird deutlich gezeigt, dass die Kursvideo-Demonstrationen genau so funktionieren, wie ich es versuche.
Ich bin am Ende meines Wissens und würde sehr zu schätzen wissen, Hilfe. So
Jake