我在不同的地方有2台电脑(因此无法使用相同的wifi网络)。 一个包含大约50GB的数据(MongoDB文件),我想移动到第二个,它具有更多的计算能力用于分析。但是如何让第二台机器上的MongoDB识别该文件夹呢?
答案 0 :(得分:21)
当你启动mongod
进程时,你为它提供了一个参数--dbpath /directory
,它就知道数据文件夹的位置。
您需要做的就是:
mongod
进程。等到它退出。mongod
进程,为其提供--dbpath /newdirectory
参数。新计算机上的mongod
将使用您指定的文件夹--dbpath。没有必要“识别”,因为该文件夹中没有特定的机器,它只是数据。
答案 1 :(得分:1)
我最近自己做了这个,我想提供一些额外的注意事项,以防读者(像我一样)遇到问题。
以下信息特定于 *nix 系统,但可能适用于对 Windows 进行大量修改的情况。
研究并利用 mongodump
和 mongorestore
。这可能更安全,而且这是迁移数据库的官方方式。
可以,直接复制数据目录即可;但是,您还需要确保 mongodb
用户在复制目录后具有对目录的完全访问权限。
我的步骤如下。在您要将旧数据库传输到的机器上:
/etc/mongod.conf
并将 dbPath 字段更改为所需位置。shellcheck
。mongodb
授予 chown
访问权限。#!/bin/bash
TARGET_DATA_DIRECTORY=/path/to/target/data/directory # modify this
SOURCE_DATA_DIRECTORY=/path/to/old/data/directory # modify this too
echo shutting down mongod...
sudo systemctl stop mongod
if test "$TARGET_DATA_DIRECTORY"; then
echo removing existing data directory...
sudo rm -rf "$TARGET_DATA_DIRECTORY"
fi
echo copying backed up data directory...
sudo cp -r "$SOURCE_DATA_DIRECTORY" "$TARGET_DATA_DIRECTORY"
sudo chown -R mongodb "$TARGET_DATA_DIRECTORY"
echo starting mongod back up...
sudo systemctl start mongod
sudo systemctl status mongod # for verification
答案 2 :(得分:0)
对于Windows非常简单,只需将数据文件夹移动到目标位置 运行cmd “ C:\ your \ mongodb \ bin-path \ mongod.exe” --dbpath =“ c:\ what \ ever \ path \ data \ db”
答案 3 :(得分:-1)
也许您没有做的是导出或转储数据库。 数据库不可移植,因此必须导出或创建为转储文件。
Here is another question where the answer is further explained