Сервер MongoDB размещается в док-контейнере.Создан суперпользователь с правами root для входа в систему с использованием имени пользователя и пароля.Использование pymodm для подключения к серверу MongoDB из скрипта Python.
Я могу подключиться к серверу MongoDB, расположенному на докере, из оболочки, а также из инструмента Compass.Попытка подключить и вставить новые элементы программно с использованием скрипта Python завершается неудачно с ошибкой Authentication Failed.
Сценарий выглядит следующим образом:
from pymodm import connect
from pymodm import MongoModel, fields
import urllib.parse
class Dummy(MongoModel):
email = fields.EmailField(primary_key=True)
name = fields.CharField()
class Meta:
connection_alias = 'Mongo'
# Establish a connection to the database.
mongo_uri = "mongodb://monadmin:" + urllib.parse.quote("myPassword@123") + "@192.168.x.x:27017/Test"
# Establish a connection to the database.
def Connect2DB()
try:
#connect('mongodb://localhost:27017/PMOTest')
connect(mongo_uri, alias="Mongo")
print("db connection success")
return True
except:
print("db connection failed")
return False
def Insert_record():
try:
Dummy(email="hello@test.com", name="test").save()
print("save success")
except ex:
print("save failed")
if __name__ == "__main__":
if Connect2DB():
Insert_record()
Соединение установлено успешно, но запись вставки завершается с ошибкойследующая ошибка: pymongo.errors.OperationFailure: Ошибка аутентификации