更改MongoDB数据存储目录
到目前为止,我还没有指定一个MongoDB数据目录,并且只有一个30 GB的主分区。
我刚刚空间不足,并添加了一个新的硬盘。 我怎样才能传输我的数据(这显然是在/var/lib/mongodb/ ),并configurationMongoDB,使一切运行的新磁盘,而不会影响我现有的安装? 
 简单的答案是,MongoDB中的--dbpath参数将允许您控制MongoDB读取和写入数据的目录。 
mongod –dbpath / usr / local / mongodb-data
 将启动mongodb并将文件放在/usr/local/mongodb-data 。 
 根据您的发行版和MongoDB安装,您也可以configurationmongod.conf文件自动执行此操作: 
 # Store data in /usr/local/var/mongodb instead of the default /data/db dbpath = /usr/local/var/mongodb 
 官方的10gen Linux软件包( Ubuntu / Debian或者CentOS / Fedora )附带一个放在/etc/mongodb.conf的基本configuration文件,MongoDB服务在启动时会读取它。 你可以在这里做你的改变。 
 解决它在2分钟宕机:) 
 只需移动文件夹,添加符号链接,然后调整权限。 
 sudo service mongod stop sudo mv mongodb /new/disk/mongodb/ sudo ln -s /new/disk/mongodb/ /var/lib/mongodb sudo chown mongodb:mongodb /new/disk/mongodb/ sudo service mongod start # test if mongodb user can access new location: sudo -u mongodb -s cd /new/disk/mongodb/ # resolve other permissions issues if necessary sudo usermod -a -G <newdisk_grp> mongodb 
 将/var/lib/mongodb的内容复制到/data/db 。 您应该查找的文件应该有像your_db_name.ns和your_dbname.n这样的名称,其中n是一个以0开头的数字。如果在/var/lib/mongodb下没有看到这样的文件,请在文件系统上search它们。 
 复制完成后,通过mongod命令启动MongoDB时使用--dbpath=/data/db 。 
如果你没有,在MongoDB文件夹中创build一个名为mongod.cfg的文件。 在我的情况下:C:\ Users \ ivanbtrujillo \ MongoDB
然后,用记事本编辑mongod.cfg,并添加一行(我们的自定义dbpath):
 dbpath=C:\Users\ivanbtrujillo\MongoDB\data\db 
在这个文件中,你也应该指定logpath。 我的mongod.cfg文件是:
 logpath=C:\Users\ivanbtrujillo\MongoDB\log\mongo.log dbpath=C:\Users\ivanbtrujillo\MongoDB\data\db 
如果您使用mongoDB作为Windows服务,则必须更改此密钥并指定mongod.cfg文件。
要将mongodb安装为Windows服务,请运行以下命令:
 **"C:\Users\ivanbtrujillo\MongoDB\bin\mongod.exe" --config "C:\Users\ivanbtrujillo\MongoDB\mongod.cfg" –install** 
打开regedit.exe并转到以下路由:
 HKEYLOCALMACHINE\SYSTEM\CurrentControlSet\services\MongoDB 
MongoDB服务不起作用,我们必须编辑ImagePath键,删除它的内容,并把下面的内容:
 **"C:\Users\ivanbtrujillo\MongoDB\bin\mongod.exe" --config "C:\Users\ivanbtrujillo\MongoDB\mongod.cfg" --logpath="C:\Users\ivanbtrujillo\MongoDB\log\mongo.log" –service** 
我们表示要mongo它的configuration文件和它的日志path。
那么当你初始化mongodb服务时,它就可以工作。
以下是在Windows中安装mongoDB的完整教程: http ://ivanbtrujillo.herokuapp.com/2014/07/24/installing-mongodb-as-a-service-windows/
希望它有帮助,
以下是我所做的,希望对其他人有所帮助:
脚步:
- 停止正在使用mongodb的服务
-   停止mongod – 我这样做的方式是用我的rc文件/etc/rc.d/rc.mongod stop,如果你使用别的东西,像systemd你应该检查你的文档如何做到这一点
-  在新硬盘上创build一个新目录 – mkdir /mnt/database
-   将mongodb的数据文件夹复制到新位置 – cp -R /var/lib/mongodb/ /mnt/database/
-   删除旧的数据库文件夹 – rm -rf /var/lib/mongodb/
-   创build符号链接到新的数据库文件夹 – ln -s /mnt/database/mongodb /var/lib/mongodb
-   启动mongod – /etc/rc.d/rc.mongod start
-   检查您的mongod 的日志 ,并做一些理智的检查(尝试mongo连接到您的数据库,看看是否一切正常)
- 开始你在第1点停止的服务
 没有必要告诉你这样做的时候应该小心,尤其是用rm -rf但是我认为这是最好的办法。 
在mongod运行的时候,你不应该试图拷贝数据库目录,因为可能有写入/读取的服务会改变数据库的内容。
 如果在Ubuntu 12.04中通过apt-get安装,请不要忘记将chown -R mongodb:nogroup /path/to/new/directory 。 另外,更改/etc/mongodb.conf的configuration。 
 提醒一下, mongodb-10gen软件包现在是通过新贵启动的,所以configuration脚本位于/etc/init/mongodb.conf 
我刚刚经历了这个,希望谷歌search它有用:)
对于Windows 10,下面的命令将为你工作,如果你想改变默认path到下面的path—只需在mongodb-
mongod –dbpath = yourdirectory \ data \ db
如果您想要移动现有数据,则只需将所有文件夹从现有data \ db目录复制到新目录即可。 也停止正在运行的现有mongodb服务。 希望它有帮助。
用户是mongod而不是mongodb
sudo chown mongod:mongod / newlocation
如果服务失败,您可以查看错误日志: –
/var/log/mongodb/mongod.log
在debian / ubuntu中,你需要编辑/etc/init.d/mongodb脚本。 真的,这个文件应该从/etc/mongodb.conf中提取设置,但是它似乎没有拉出默认目录(可能是一个bug)
这是一个黑客,但将这些添加到脚本,使其正确启动:
加:
 DBDIR=/database/mongodb 
更改:
 DAEMON_OPTS=${DAEMON_OPTS:-"--unixSocketPrefix=$RUNDIR --config $CONF run"} 
至:
 DAEMON_OPTS=${DAEMON_OPTS:-"--unixSocketPrefix=$RUNDIR --dbpath $DBDIR --config $CONF run"}