【发布时间】:2014-01-21 00:28:08
【问题描述】:
我有一个 MongoDB 数据库,它驻留在本地网络上的 IP 地址为 192.168.1.20 的远程服务器机器上。出于开发和测试的目的,并且出于安全考虑,我不允许修改或删除服务器上的数据库,所以我想将数据库复制到我的本地机器上供我个人使用。
谁能告诉我,我该如何做到这一点?
【问题讨论】:
标签: mongodb localhost local database
我有一个 MongoDB 数据库,它驻留在本地网络上的 IP 地址为 192.168.1.20 的远程服务器机器上。出于开发和测试的目的,并且出于安全考虑,我不允许修改或删除服务器上的数据库,所以我想将数据库复制到我的本地机器上供我个人使用。
谁能告诉我,我该如何做到这一点?
【问题讨论】:
标签: mongodb localhost local database
有copy database 命令我猜应该很适合你的需要。
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)或使用驱动程序编写脚本。
参考here
【讨论】:
/* 1 */ { "ok" : 0.0, "errmsg" : "unauthorized" }
这应该是对@malla 答案的评论,但我没有足够的声誉发表评论,所以我将其发布在这里以供其他人参考。
在第 2 步中,当您尝试从远程服务器转储文件时,请记住添加 out 选项,以便您稍后可以在本地恢复:(在我第一次尝试时,我没有添加它并且它失败了,说转储\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
【讨论】:
我通过将远程数据库的转储创建到我的本地计算机来做到这一点,然后我将其恢复:
确保您有一个 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 替换为远程数据库的名称,与前面的命令相同,并将 theNameYouWantForYourLocalDB 替换为您希望新本地数据库具有的名称)
【讨论】:
mongodump -h 00.00.00.00 -d nameOfRemoteDB mongorestore -h 00.00.00.00 -d nameOfRemoteDB ./dump/db 是最好的操作。
The --db and --collection flags are deprecated for this use-case; please use --nsInclude instead, i.e. with --nsInclude=${DATABASE}.${COLLECTION}docs.mongodb.com/database-tools/mongorestore/#examples
您可以使用mongoexport 命令将数据库复制到本地计算机。
【讨论】:
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/
这甚至可以通过网络工作
【讨论】:
mongoexport 命令: http://docs.mongodb.org/manual/core/import-export/
或者,mongodump 命令: http://docs.mongodb.org/manual/reference/program/mongodump/
【讨论】: