У меня проблема при подключении к mongoDb с python3. У меня есть файл конфигурации, в котором указан хост, имя пользователя и пароль, а данные необходимо прочитать из файла конфигурации. Я читаю конфигурацию, используя ConfigObj. Проблема в следующем. Если я создаю MongoClient с использованием строки stati c, то клиент работает нормально, когда я звоню cursor.next()
, но когда MongoClient создается из файла конфигурации, я получаю следующую ошибку. pymon go .errors.OperationFailure: проверка подлинности не удалась.
Рабочий код.
client=MongoClient("mongodb://dummyuser:password@1.1.1.1:27071/default_db?authSource=auth_database",
maxPoolSize=10))
Если я создаю клиента в этом формате и позже из глобального вызова клиента функции и извлекаю документы, использующие cursor.next()
, то работает нормально. Однако, если мы используем следующий код.
client = MongoClient(host=configuration['host'],
port=27071,
username=configuration['user'],
password=configuration['password'],
authSource=configuration['auth_database']))
После создания такого клиента, если мы звоним cursor.next()
, я получаю следующую ошибку:
File "basepath/lib/python3.7/site-packages/pymongo/helpers.py", line 159, in _check_command_response
raise OperationFailure(msg % errmsg, code, response)
pymongo.errors.OperationFailure: Authentication failed.
Я не могу понять, что меняется. Пожалуйста, помогите мне.
Конфигурационный файл имеет формат.
[mongodb]
[[connection]]
host = 1.1.1.1
port = 27071
user = dummy_user
password = password
authentication_database = auth_data
и прочитанный диктант имеет вид
{'host': '1.1.1.1', 'user': 'dummy_user', 'password': 'password', 'authentication_database': 'auth_data', 'port': 27071}