如何更改MongoDB用于存储其数据的位置?


13

我编辑了MongoDB配置文件以将其数据存储在中/home/user/data/mongod

但是数据仍然写入旧目录,这可能是因为未授予对新文件夹的权限-我如何为MongoDB赋予该目录必要的权限?


1
您是如何编辑配置的?为什么您认为权限有问题?为什么您认为Mongo使用默认目录而不是抛出错误?(这是一种询问方式:您是否检查了错误日志文件?)
Andrea Corbellini 2013年

Answers:


29

要更改MongoDB用于存储其数据的位置,您需要:

  1. 编辑/etc/mongodb.conf线并将其更改dbpath=/var/lib/mongodb为所需的路径,例如dbpath=/home/user/data/mongodb
  2. 更新所选路径的权限以允许mongodb用户对其进行写入,例如chown $USER -R /home/user/data/mongodb
  3. 通过运行重新启动MongoDB服务 sudo service mongodb restart

请注意,如果要保留的旧位置中有任何数据,则需要首先停止MongoDB服务,手动移动文件,然后再次启动该服务。

停止使用MongoDB服务器 sudo service mongodb stop


我需要移动哪些文件?
chovy

@chovy存储目录中的文件。
戴维·爱德华兹

我删除了/var/lib/mongodb
chovy

@chovy然后,您可能已删除所有数据(如果有的话),并且没有可移动的文件。
戴维·爱德华兹

是的,那很好 我不需要保存它。不确定那里是否需要非数据文件。显然不是,因为它似乎仍工作
chovy

1

您需要重新启动守护程序以使更改生效。

sudo service mongodb restart

钛重新启动守护进程,我也给你办法。旧方法:“ etc / init.d / mongodb重新启动”,新方法:“ sudo服务mongodb重新启动”
西里尔·阿尔法罗

1
我建议编辑您的答案以包含该信息。
伊利亚·卡根

1

如果您从命令行启动MongoDB的,你可以使用--dbpath参数: mkdir mydata && mongod --dbpath mydata 您可能会遇到与“文件存在”什么的,它是MongoDB中的一个众所周知的限制,相关的一些问题,更多关于这个在这里。只需更换磁盘驱动器,然后测试是否现在不再存在该问题。


1

我今天遇到了同样的问题,并按照以下步骤解决了该问题。

  1. 编辑mongod.conf文件并编辑dbPath变量值。

    sudo -H gedit /etc/mongod.conf
    
  2. 然后使用以下命令启动mongod服务

    sudo mongod --dbpath "your db path"
    

    我试图在没有命令的情况下运行以上命令,但sudo出现错误。因此使用sudo来运行命令。


0

将/ var / lib / mongodb(保存数据的目录)转换到/ path并锁定mondodb:mongodb / path(要保存数据的目录)

编辑/etc/mongod.conf

服务mongod重新启动(如果无法连接,请检查/ path,如果不包含mongod.lock,如果存在,请删除它并再次重新启动)


它的mongodb:mongodb我猜.. !!
Lakshman Pilaka,
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.