2014-01-03 9 views
9

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

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

ответ

5

Есть команда copy database, которая, как я полагаю, должна соответствовать вашим потребностям.

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

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

+0

Большое спасибо за ответ. Где именно я запускаю эту команду? Извините за звучание как noob, поскольку я новичок в MongoDB и только что изучал его за последние 24 часа. – Razor

+1

в терминале, сначала запустите mongo в терминале, затем выполните команду – sas

+1

База данных успешно скопирована. Большое спасибо за Вашу помощь. :) – Razor

0

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

13

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

  1. Убедитесь, что экземпляр Монго и работает (например, запустить mongod.exe с. . ваш бен папка в окне терминала на моем окне компьютера это C: \ MongoDB \ Bin)

  2. Сделать дамп с удаленной БД: Открыть новое окно терминала, снова перейти в папку BIN, запустите:

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

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

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

    mongorestore -d theNameYouWantForYourLocalDB dump\nameOfRemoteDB

    (заменить nameOfRemoteDB с именем удаленного дБ, то же самое, как и в предыдущей команде, и заменить theNameYouWantForYourLocalDB с именем, которое вы хотите, чтобы ваша новая локальная БД иметь)

+0

Лучший способ сделать. db.copyDatabase() не копировал данные и пропускал некоторые коллекции. Я работаю с небольшим vm и одним только для монго. я не могу сбросить с этих VM и делаю это с моего компьютера с этим:. 'mongodump -h 00.00.00.00 -d nameOfRemoteDB mongorestore -h 00.00.00.00 -d nameOfRemoteDB/дампом/db' является лучшей манипуляцией. – Georgio

Смежные вопросы