我编辑了 MongoDB 配置文件以将其数据存储在/home/user/data/mongod
。
但是数据仍然写入旧目录,据说是因为没有授予新文件夹的权限——我该如何授予 MongoDB 该目录必要的权限?
答案1
要更改 MongoDB 存储数据的位置,您需要:
- 编辑
/etc/mongod.conf
并将该行更改dbpath=/var/lib/mongodb
为您想要的路径,例如dbpath=/home/user/data/mongodb
- 更新所选路径的权限以允许用户
mongodb
写入,例如chown $USER -R /home/user/data/mongodb
sudo service mongod stop
运行以下命令重新启动 MongoDB 服务sudo service mongod start
请注意,如果您想要保留旧位置中的任何数据,则需要先停止 MongoDB 服务,手动移动文件,然后重新启动该服务。
要停止 MongoDB 服务器,请使用sudo service mongod stop
笔记2 要运行和管理 mongod 进程,您将使用操作系统的内置 init 系统。较新版本的 Linux 倾向于使用 systemd(使用 systemctl 命令),而较旧版本的 Linux 倾向于使用 System V init(使用 service 命令)。
如果您不确定您的平台使用哪个 init 系统,请运行以下命令:
ps --no-headers -o comm 1
根据结果:
- systemd - 选择下面的 systemd (systemctl) 选项卡。或者
- init——选择下面的 System V Init(服务)选项卡。
你将执行:
sudo systemctl start mongod
在第一种情况下
sudo service mongod start
如果你属于第二种情况。
答案2
我今天遇到了同样的问题,并按照以下步骤解决了该问题。
编辑 mongod.conf 文件并编辑 dbPath 变量值。
sudo -H gedit /etc/mongod.conf
然后使用以下命令启动 mongod 服务
sudo mongod --dbpath "your db path"
我尝试运行上述命令,
sudo
但出现错误。因此使用sudo
运行命令。
答案3
您需要重新启动守护进程才能使更改生效。
sudo service mongodb restart
答案4
如果你从命令行启动 mongodb,你可以使用参数--dbpath
:
mkdir mydata && mongod --dbpath mydata
你可能会遇到一些与“文件存在”或其他问题相关的问题,这是 MongoDb 的一个众所周知的限制,更多信息请参见这里。只需更换磁盘驱动器并测试是否不再出现该问题。