У меня есть экземпляр MongoDB, настроить с помощью файла конфигурации и файла ключа.
Я хотел бы инициировать набор реплик с использованием pymongo. Когда я пытаюсь инициировать набор replcia, выполнив python script на сервере, который станет основным набором реплик, как таковой:
from pymongo import MongoClient
uri = "mongodb://correctWorkingUsername:[email protected]:27017"
c = MongoClient(uri)
config = {'_id': 'RelicaSetName', 'members': [
{'_id': 0, 'host': 'FirstServer:27017'},
{'_id': 1, 'host': 'SecondServer:27017'},
{'_id': 2, 'host': 'ThirdServer:27017'}]}
c.admin.command("replSetInitiate", config)
Появляется сообщение об ошибке:
'SecondSErver:27017' has data already, cannot initiate set
Однако, если я аутентифицируюсь в базе данных с помощью
mongo admin -u correctWorkingUsername -p password
Я могу инициировать репликацию и успешно добавлять элементы:
rs.initiate()
rs.add('SecondServer:27017')
Я не знал, связано ли это с проверкой ключа ключа или тем фактом, что пользователи были УЖЕ созданы на других серверах с помощью script. Каждый сервер также был запущен с конфигурационным файлом mongod.conf, который содержит имя набора реплик.
Почему это не удается? Операции rs.initiate() и rs.add() работают отлично, но python script не работает, хотя может привести к подключению к базе данных.