在shell中运行mongod可以工作,但它不能作为服务工作

时间:2017-11-09 13:15:01

标签: linux mongodb service

我在Linux OS下运行mongod。我想将我的数据目录从默认的/var/lib/mongodb更改为另一个位置/nfs/mongodb

当我从shell运行mongodb时(即sudo / usr / bin / mongod --dbpath / nfs / mongodb)它运行正常。

下一步,我尝试将mongodb作为服务运行(sudo service mongodb start

我修改了文件/etc/mongodb.conf并将行dppath=xxx更改为指向我创建的新目录。当我运行mongodb作为服务时,我收到此错误:

couldn't open file /nfs/mongodb/journal/j._0 for writing errno:1 Operation not permitted, terminating

为什么mongodb在shell中运行而不是作为服务?

1 个答案:

答案 0 :(得分:1)

这很可能是因为许可问题。

运行sudo mongod时,它以root身份运行,可以写入任何目录。

相反,当作为服务运行时,MongoDB通常作为有限权限用户运行,以防止任何安全问题升级到根级别访问。

解决方案是chmodchown目标dbpath目录,以便服务用户可以写入。

注意:您可能需要查看Production Notes以获取有关以最佳方式运行MongoDB的提示。