Невозможно настроить набор реплик с использованием MongoDB 3
Я пытаюсь создать набор реплик в MongoDB версии 3.04. Я следовал этому руководству и получил следующую ошибку, пытаясь добавить узлы, используя основной сервер:
vacrep:PRIMARY> rs.add('server address here')
{
"ok" : 0,
"errmsg" : "Quorum check failed because not enough voting nodes responded;
required 2 but only the following 1 voting nodes responded: PRIMARYSERVER:27017;
the following nodes did not respond affirmatively: 'server address here':27017
failed with Missing credentials for authenticating as internal user",
"code" : 74
}
Это то, что было сделано до сих пор:
- Установите 3 сервера с MongoDB 3.04
- Запустите все экземпляры MongoDB в режиме repSet
- Проверенная связь между серверами с использованием этого подхода
- Инициировать реплику на основном сервере)
Я нашел несколько тем об этой ошибке, но не смог найти решение ни в одной из них. Как я могу решить это?
2 ответа
Нашел решение - это был вопрос разрешения.
В файле конфигурации MongoDB мне пришлось отключить режим аутентификации или создать общий ключ для всех узлов, используя это руководство:
https://docs.mongodb.com/manual/tutorial/deploy-replica-set-with-keyfile-access-control/
По этой причине мои серверы не могли общаться друг с другом.
В дополнение к приведенному выше ответу, который, очевидно, является правильным, следующие шаги будут полезны при создании ключевых файлов:
- Откройте новую вкладку в любом текстовом редакторе, вставьте любой произвольный ключ без пробелов.
- Сохраните файл без расширения
Завершите работу каждого экземпляра Монго следующим образом:
а.
use admin
б.
db.shutdownServer();
Теперь перезапустите экземпляры mongo, указав в качестве аргумента keyFile.
например
start "jaguar" mongod --dbpath "D:\Mongo\data\Replica Sets\Jaguar" --port 50000 --replSet "clusterset" --keyFile "D:\Mongo\data\Replica Sets\Jaguar\Key\F2AB9B2DCF7933733A35EE9C81C34"