Копирование базы данных MongoDB на локальную машину

У меня есть база данных MongoDB, которая находится на удаленном сервере, чей IP-адрес равен 192.168.1.20 в локальной сети. Для разработки и тестирования, и поскольку мне не разрешено изменять или удалять базу данных на сервере в целях безопасности, я хочу скопировать базу данных на моем локальном компьютере для личного использования.

Может ли кто-нибудь рассказать мне, как мне это достичь?

Ответ 1

Существует команда копировать базу данных, которая, как я полагаю, должна соответствовать вашим потребностям.

db.copyDatabase("DATABASENAME", "DATABASENAME", "localhost:27018");

Кроме того, вы можете просто остановить MongoDb, скопировать файлы базы данных на другой сервер и запустить там экземпляр MongoDb.

Ответ 2

Я делаю это, создавая дамп удаленного db на моем локальном компьютере, который затем восстанавливаю:

  • Убедитесь, что у вас есть экземпляр mongo и (например, запустите mongod.exe из папки bin в окне терминала. На моем компьютере с Windows, что C:\mongodb\bin )

  • Сделать дамп с удаленного db. Откройте новое окно терминала, снова перейдите в папку bin, запустите:

    mongodump -h example.host.com --port 21018 -d dbname --username username --password yourpass

    (Измените параметры в соответствии с вашей собственной ситуацией.)

  • Восстановить сбрасываемую базу данных: После создания дампа выполните следующую команду, чтобы у вас был локальный db:

    mongorestore -d theNameYouWantForYourLocalDB dump\nameOfRemoteDB

    (замените nameOfRemoteDB на имя удаленной db, как и в предыдущей команде, и замените имяNeyYouWantForYourLocalDB на имя, которое вы хотите, чтобы ваш новый локальный db имел)

Ответ 5

Вы можете использовать команду mongoexport для копирования базы данных на локальный компьютер.

Ответ 6

Это должен быть комментарий к ответу @malla, но у меня недостаточно репутации, чтобы комментировать, поэтому я публикую его здесь для другой ссылки.

На шаге 2, когда вы пытаетесь выгрузить файл с удаленного сервера, не забудьте добавить опцию, чтобы вы могли восстановить локально позже: (В моей первой попытке я не добавил его, и это не удалось, говоря, что dump\db_name было не найден). Я не уверен, эффективен ли мой путь или нет. Но это сработало для меня.

Шаг 2:

mongodump -h example.host.com --port 21018  -d dbname --username username --password yourpass --out <path_you_want_to_dump>

Шаг 3:

mongorestore -d theNameYouWantForYourLocalDB \<path_you_want_to_dump> + nameOfRemoteDB