将 MongoDB 数据库复制到本地机器

问题描述 投票:0回答:7

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

谁能告诉我,我该如何实现?

mongodb localhost local database
7个回答
43
投票

我通过创建远程数据库的转储到我的本地机器来做到这一点,然后我恢复它:

  1. 确保您已启动并运行 mongo 实例(例如,从终端窗口中的 bin 文件夹运行

    mongod.exe
    。在我的 Windows 计算机上,它位于 C:\mongodb 中)

  2. 从远程数据库进行转储:打开一个新的终端窗口,再次移动到 bin 文件夹,运行:

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

    (根据自己的情况更改参数。)

  3. 恢复转储的数据库: 转储完成后,运行以下命令以便您拥有本地数据库:

    mongorestore -d theNameYouWantForYourLocalDB dump\nameOfRemoteDB

    (将 nameOfRemoteDB 替换为远程数据库的名称,与之前的命令相同,并将 NameYouWantForYourLocalDB 替换为您希望新的本地数据库具有的名称)


12
投票

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
)或使用驱动程序编写脚本。

参考这里


7
投票

这应该是对@malla 的回答的评论,但我没有足够的声誉来发表评论,所以我把它贴在这里供其他人参考。

在第2步中,当你尝试从远程服务器转储文件时,记得添加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


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/

这甚至可以通过网络工作


0
投票

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


0
投票

服务器到本地机器

使用 ssh 命令连接到您的远程服务器:

ssh user@serverip

登录到服务器后,使用 mongodump 命令创建数据库备份:

mongodump --db dbname --out backupdir

要使用“scp”命令将备份从您的服务器复制到本地系统,您可以按照以下步骤操作:

scp -r user@serverip:/path/to/backupdir /path/to/localdir

© www.soinside.com 2019 - 2024. All rights reserved.