Получение следующей ошибки: 13279: не удается найти себя в конфигурации replets при настройке наборов реплик
Я настраиваю набор реплик 3 node mongodb на linux. Я использую следующую конфигурацию
fork = true
bind_ip = 127.0.0.1
port = 27017
verbose = true
dbpath = /opt/mongoDB/data/db
logpath = /opt/mongoDB/log/mongod.log
logappend = true
journal = true
replSet = rs1
keyFile = /opt/mongoDB/mongodb/bin/conf/keyfile
чтобы запустить сервер. Я запустил сервер, и когда я запустил подключение к серверу с помощью инструмента командной строки mongo.
Когда я сделал rs.initiate()
, я получил
{
"info2" : "no configuration explicitly specified -- making one",
"me" : "host-ip:27017",
"ok" : 0,
"errmsg" : "couldn't initiate : can't find self in the replset config"
}
Я попытался предоставить cfg initiate()
и по-прежнему получить ту же ошибку.
Это то, что отображается в файле журнала.
Mon Oct 14 13:27:33.218 [rsStart] replSet info no seed hosts were specified on the --replSet command line
Mon Oct 14 13:27:34.118 [conn1] run command admin.$cmd { replSetInitiate: { _id: "rs1", members: [ { _id: 0.0, host: "host-ip:27017" } ] } }
Mon Oct 14 13:27:34.118 [conn1] replSet replSetInitiate admin command received from client
Mon Oct 14 13:27:34.118 [conn1] replSet replSetInitiate config object parses ok, 1 members specified
Mon Oct 14 13:27:34.118 [conn1] getallIPs("host-ip"): [ip address]
Mon Oct 14 13:27:34.118 BackgroundJob starting: ConnectBG
Mon Oct 14 13:27:34.118 [conn1] User Assertion: 13279:can't find self in the replset config
Mon Oct 14 13:27:34.119 [conn1] replSet replSetInitiate exception: can't find self in the replset config
Mon Oct 14 13:27:34.119 [conn1] command admin.$cmd command: { replSetInitiate: { _id: "rs1", members: [ { _id: 0.0, host: "host-ip:27017" } ] } } ntoreturn:1 keyUpdates:0 locks(micros) W:230 reslen:107 1ms
Как мне сделать, чтобы разрешить эту ошибку?
Ответы
Ответ 1
Я не мог инициировать набор копий MongoDB на машине CentOS.
http://docs.mongodb.org/manual/tutorial/deploy-replica-set
mongodb replset
rs.initiate()
{
"errmsg":"couldn't initiate : can't find self in the replset config on port 27011"
}
Затем я просто использовал параметр объекта JSON для rs.initiate(rsconfig)
var rsconfig = {"_id":"rs1","members":[{"_id":1,"host":"127.0.0.1:27011"}]}
затем rs.add(..) или просто все сразу
var rsconfig = {"_id":"rs1","members":[{"_id":1,"host":"127.0.0.1:27011"},{"_id":2,"host":"127.0.0.1:27012"},{"_id":3,"host":"127.0.0.1:27013"}]}
установите флажок print(JSON.stringify(rsconfig))
, затем
rs.initiate(rsconfig)
через несколько секунд проверьте
rs.status()
![enter image description here]()
Ответ 2
Не устанавливайте 127.0.0.1
на bind_ip
, измените bind_ip
на имя машины или IP-адрес (например, 192.168.0.1
).