mongodb, реплики и ошибка: {«$ err»: «not master and slaveOk = false», «code»: 13435}

Я впервые попробовал наборы реплик mongo.

Я использую ubuntu на ec2 и загрузил три экземпляра. Я использовал частный IP-адрес каждого из экземпляров. Я выбрал в качестве основного, а ниже - код.

mongo --host Private IP Address
rs.initiate()
rs.add(“Private IP Address”)
rs.addArb(“Private IP Address”)

На данный момент все в порядке. Когда я захожу на сайт http://ec2-xxx-xxx-xxx-xxx.compute-1.amazonaws.com:28017/_replSet , я вижу, что у меня есть первичный, второй день и арбитр.

Хорошо, теперь тест.

На первичном сервере создайте базу данных, вот код:

use tt
db.tt.save( { a : 123 } )

на вторичном, я делаю это и получаю следующую ошибку:

db.tt.find()
error: { "$err" : "not master and slaveOk=false", "code" : 13435 }

Я новичок в mongodb и реплицирует, но я подумал, что если я это сделаю что-то в одном, оно переходит в другое. Итак, если я добавлю запись в одну, что мне нужно сделать для репликации на разных машинах?

160
задан eLRuLL 31 May 2013 в 03:15
поделиться

1 ответ

slaveOk больше не работает. Нужно использовать readPreference https://docs.mongodb.com/v3.0/reference/read-preference/#primaryPreferred

, например,

const client = new MongoClient(mongoURL + "?readPreference=primaryPreferred", { useUnifiedTopology: true, useNewUrlParser: true });
1
ответ дан 23 November 2019 в 21:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: