将MongoDB数据库复制到本地计算机

时间:2014-01-03 10:51:32

标签: mongodb localhost local database

我有一个MongoDB数据库,它驻留在本地网络上IP地址为192.168.1.20的远程服务器上。出于开发和测试目的,由于出于安全考虑,我不允许在服务器上修改或删除数据库,因此我想在本地计算机上复制数据库供个人使用。

任何人都可以告诉我,我该如何做到这一点?

6 个答案:

答案 0 :(得分:25)

我通过创建远程数据库转储到我的本地计算机来执行此操作,然后将其还原:

  1. 确保你的mongo实例正常运行(例如,在终端窗口中从bin文件夹中运行mongod.exe。在我的Windows计算机上是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替换为远程数据库的名称,与上一个命令相同,并将NameYouWantForYourLocalDB替换为您希望新的本地数据库具有的名称)

答案 1 :(得分:8)

我认为copy database命令应该适合您的需要。

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

或者,您可以停止MongoDb,将数据库文件复制到另一台服务器并在那里运行MongoDb实例。

答案 2 :(得分:1)

答案 3 :(得分:1)

mongodb具有用于导入和导出的命令行工具。请查看mongodump --collection collection --db testmongorestore --collection people --db accounts dump/accounts/

http://docs.mongodb.org/v2.2/reference/mongodump/ http://docs.mongodb.org/v2.2/reference/mongorestore/

这甚至适用于网络

答案 4 :(得分:0)

您可以使用mongoexport命令将数据库复制到本地计算机。

答案 5 :(得分:0)

这应该是对@malla答案的评论,但是我没有足够的声誉来评论,因此我将其发布在这里以供他人参考。

在第2步中,当您尝试从远程服务器上转储文件时,请记住添加出选项,以便以后可以在本地还原:(在我的第一次尝试中,我没有添加它,但失败了,说转储\ 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