我有一个MongoDB数据库,它驻留在本地网络上IP地址为192.168.1.20的远程服务器上。出于开发和测试目的,由于出于安全考虑,我不允许在服务器上修改或删除数据库,因此我想在本地计算机上复制数据库供个人使用。
任何人都可以告诉我,我该如何做到这一点?
答案 0 :(得分:25)
我通过创建远程数据库转储到我的本地计算机来执行此操作,然后将其还原:
确保你的mongo实例正常运行(例如,在终端窗口中从bin文件夹中运行mongod.exe
。在我的Windows计算机上是C:\ mongodb \ bin)中
从远程数据库转储:打开一个新的终端窗口,再次移动到bin文件夹,运行:
mongodump -h example.host.com --port 21018 -d dbname --username username --password yourpass
(根据您自己的情况更改参数。)
恢复转储的数据库:转储完成后,运行以下命令,以便拥有本地数据库:
mongorestore -d theNameYouWantForYourLocalDB dump\nameOfRemoteDB
(将nameOfRemoteDB替换为远程数据库的名称,与上一个命令相同,并将NameYouWantForYourLocalDB替换为您希望新的本地数据库具有的名称)
答案 1 :(得分:8)
我认为copy database命令应该适合您的需要。
db.copyDatabase("DATABASENAME", "DATABASENAME", "localhost:27018");
或者,您可以停止MongoDb,将数据库文件复制到另一台服务器并在那里运行MongoDb实例。
答案 2 :(得分:1)
mongoexport命令: http://docs.mongodb.org/manual/core/import-export/
或者,mongodump命令: http://docs.mongodb.org/manual/reference/program/mongodump/
答案 3 :(得分:1)
mongodb具有用于导入和导出的命令行工具。请查看mongodump --collection collection --db test
和mongorestore --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