Задать вопрос

Как скопировать базу данных mongo с сервера используя pymongo?

Здраствуйте.
Создал пользователя у базы "admin" в монго. Указал ему все права которые нашел. версия монго 2.4.9
{
	"_id" : ObjectId("5565d4b0e2cb3c06a51bc810"),
	"user" : "root2",
	"pwd" : "83649f9cf3fc01bd7dce347baf12e838",
	"roles" : [
		"read",
		"readWrite",
		"dbAdmin",
		"userAdmin",
		"clusterAdmin",
		"readAnyDatabase",
		"readWriteAnyDatabase",
		"userAdminAnyDatabase",
		"dbAdminAnyDatabase"
	]
}

Моя попытка скопировать код:
import pymongo
from pymongo import MongoClient
client2 = MongoClient('52.74.52.245', 27017)
client2.admin.authenticate('root2', 'password')
print(client2.shoppr_db.collection_names())
client = MongoClient()
client.admin.command(
					'copydb',
					fromdb='shoppr_db',
					todb='del4',
					fromhost='52.74.59.245',
					username='root2',
					key='83649f9cf3fc01bd7cce347baf22e838'
					)

Названия коллекция выводятся как положено. Но при попытке скопировать базу происходит ошибка:
,,,on namespace admin.$cmd failed: exception: nextSafe(): { $err: "not authorized for query on shoppr_db.system.namespaces", code: 16550 }

Я так и не нашел по руководству куда вписывать пароль. Точней нашел, что вроде нужно указать "hash" пароля в поле key. Подумал, что "hash" поле это строка "pwd" : "83649f9cf3fc01bd7dce347baf12e838", которая отображалась после регистрации пользователя.
Так же у базы shoppr_db имеется свой пользователь "user" с правами на чтение(Если это имеет значение).
Копирование не получается когда в конфиге монго включен параметр "auth=true". Если его отключить "#auth=true", то копирование происходит успешно.
Вообщем не разобрался как авторизировать пользователя при попытке копирования базы данных и включенном параметре "auth=true"
  • Вопрос задан
  • 953 просмотра
Подписаться 2 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 1
mak_sim
@mak_sim
maksim77ster@gmail.com
Мне кажется, что ответ здесь. По ссылке инструкция как сгенерировать значение key.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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