我有一个MongoDB数据库,存储在远程服务器上,其IP地址为192.168.1.20,位于本地网络上。出于开发和测试目的,并且由于出于安全考虑不允许我修改或删除服务器上的数据库,我想将数据库复制到我的本地机器上供个人使用。
请问有人能告诉我如何实现这一目标吗?
我通过在本地创建远程数据库的转储,然后进行恢复来实现此操作:
确保你的Mongo实例正在运行中(例如,在终端窗口中运行mongod.exe
。在我的Windows电脑上是C:\mongodb\bin)
从远程数据库创建一个转储文件:打开一个新的终端窗口,再次进入bin文件夹,运行以下命令:
mongodump -h example.host.com --port 21018 -d dbname --username username --password yourpass
(更改参数以适应您自己的情况。)
恢复已转储的数据库:转储文件制作完成后,运行以下命令,以使您拥有本地数据库:
mongorestore -d 您要为本地数据库命名的名称 dump\nameOfRemoteDB
(用远程数据库的名称替换nameOfRemoteDB,该名称与上一个命令中相同,并用您想要的新本地数据库的名称替换theNameYouWantForYourLocalDB)
有一个复制数据库的命令,我想这应该很适合您的需求。
db.copyDatabase("DATABASENAME", "DATABASENAME", "localhost:27018");
或者,您可以停止MongoDb,将数据库文件复制到另一个服务器,并在那里运行MongoDb的实例。
编辑 2020-04-25
引用自MongoDB文档
MongoDB 4.0 弃用了
copydb
和clone
命令及其mongo shell助手db.copyDatabase()
和db.cloneDatabase()
。作为替代,用户可以使用
mongodump
和mongorestore
(使用mongorestore
选项--nsFrom
和--nsTo
)或编写使用驱动程序的脚本。
参考此处
我希望将这个评论留给 @malla 的答案,但是我没有足够的声望来进行评论,所以我在这里发布供其他人参考。
在第二步中,当你尝试从远程服务器转储文件时,请记得添加 out 选项,以便稍后在本地还原:(在我的第一次尝试中,我没有添加它,导致失败,显示 dump\db_name 找不到)。我不确定我的方法是否高效,但对我而言是有效的。
第二步:
mongodump -h example.host.com --port 21018 -d dbname --username username --password yourpass --out <path_you_want_to_dump>
第三步:
mongorestore -d theNameYouWantForYourLocalDB \<path_you_want_to_dump> + nameOfRemoteDB
mongoexport命令: http://docs.mongodb.org/manual/core/import-export/
或者,mongodump命令: http://docs.mongodb.org/manual/reference/program/mongodump/
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/
这甚至可以在网络上运行。使用ssh命令连接到远程服务器:
ssh user@serverip
一旦您登录到服务器,使用mongodump命令创建数据库备份:
mongodump --db dbname --out backupdir
使用“scp”命令将备份从服务器复制到本地系统,您可以按照以下步骤操作:
scp -r user@serverip:/path/to/backupdir /path/to/localdir
mongodump -h 00.00.00.00 -d nameOfRemoteDB mongorestore -h 00.00.00.00 -d nameOfRemoteDB ./dump/db
- Georgio--db和--collection标志已弃用,请改用--nsInclude,即使用--nsInclude = $ {DATABASE}。$ {COLLECTION}
https://docs.mongodb.com/database-tools/mongorestore/#examples - Ryan--authenticationDatabase admin
,就像这个 stack overflow 帖子 上所指示的那样。 - Mister Q