Я создал набор реплик mongodb с тремя членами. Они синхронизированы, но если я пытаюсь подключиться к дополнительным участникам через Robomongo и через веб-приложение, это не работает. Я получаю сообщение об ошибке для slaveOK установлено значение false, но я только что установил rs.slaveOk() для каждого члена набора реплик.
Если я подключаюсь через оболочку, я не получаю ошибку и могу перечислить все. Если второстепенный член становится основным, я также могу читать его через Robomongo.
Версия оболочки MongoDB: 2.6.10
вот rs.status()
rs:PRIMARY> rs.status()
{
"set" : "gmrrs",
"date" : ISODate("2015-06-25T16:14:53Z"),
"myState" : 1,
"members" : [
{
"_id" : 0,
"name" : "****",
"health" : 1,
"state" : 1,
"stateStr" : "PRIMARY",
"uptime" : 2014,
"optime" : Timestamp(1435246594, 1208),
"optimeDate" : ISODate("2015-06-25T15:36:34Z"),
"electionTime" : Timestamp(1435248124, 1),
"electionDate" : ISODate("2015-06-25T16:02:04Z"),
"self" : true
},
{
"_id" : 1,
"name" : "***:27019",
"health" : 1,
"state" : 2,
"stateStr" : "SECONDARY",
"uptime" : 774,
"optime" : Timestamp(1435246594, 1208),
"optimeDate" : ISODate("2015-06-25T15:36:34Z"),
"lastHeartbeat" : ISODate("2015-06-25T16:14:52Z"),
"lastHeartbeatRecv" : ISODate("2015-06-25T16:14:52Z"),
"pingMs" : 0,
"syncingTo" : "****:27018"
},
{
"_id" : 2,
"name" : "****:27020",
"health" : 1,
"state" : 2,
"stateStr" : "SECONDARY",
"uptime" : 759,
"optime" : Timestamp(1435246594, 1208),
"optimeDate" : ISODate("2015-06-25T15:36:34Z"),
"lastHeartbeat" : ISODate("2015-06-25T16:14:51Z"),
"lastHeartbeatRecv" : ISODate("2015-06-25T16:14:51Z"),
"pingMs" : 1,
"syncingTo" : "***:27018"
}
],
"ok" : 1
}
и здесь rs.conf()
rs:PRIMARY> rs.conf()
{
"_id" : "rs",
"version" : 3,
"members" : [
{
"_id" : 0,
"host" : "***:27018"
},
{
"_id" : 1,
"host" : "***:27019"
},
{
"_id" : 2,
"host" : "***:27020"
}
]
}
Я хотел бы писать только на одном сервере и читать на всех.
Кто-нибудь может помочь?
Спасибо, Никола