Получение следующей ошибки: 13279: не удается найти себя в конфигурации replset при настройке наборов реплик

17

Я настраиваю набор реплик mongodb из 3 узлов в 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

Как мне сделать, чтобы разрешить эту ошибку?

    
задан user2704732 14.10.2013 в 22:37
источник
  • Примечание. Я проверил файл / etc / hosts, и есть запись для localhost и этого конкретного IP-адреса сервера с именем. –  user2704732 14.10.2013 в 22:44

2 ответа

21

Я не мог инициировать набор копий MongoDB на машине CentOS.

Ссылка

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()

    
ответ дан Paul Verest 12.11.2013 в 09:52
  • Параметр rsconfig сохранил мой день, спасибо –  daver 27.08.2014 в 23:46
11

Не устанавливайте 127.0.0.1 в bind_ip , измените bind_ip на имя или IP-адрес машины (например, 192.168.0.1 ).

    
ответ дан Robin 15.10.2013 в 04:46
  • Выше работали для меня, я использовал 0.0.0.0 как bind_ip. –  beeman 01.02.2014 в 18:15
  • уверен, что локальные IP-адреса предназначены только для тестовой среды. –  Paul Verest 14.04.2014 в 04:10
  • 0.0.0.0, и комментирование не работает. По крайней мере, в 2.6 –  lostintranslation 09.09.2015 в 01:46