mongodb数据目录权限

时间:2011-05-12 05:50:00

标签: mongodb

之前我将所有mongodb数据文件存储在/ var / lib / mongodb目录中,而/etc/mongodb.conf中的dbpath条目是/ var / lib / mongodb ..

现在我想将数据目录更改为/vol/db..so我创建了目录/ vol / db并使用sudo chown -R id -u / vol / db更改了权限并更改了数据库路径在/etc/mongodb.conf中输入/ vol / db

现在当我使用sudo服务启动mongodb mongodb start ..我在/var/log/mongodb/mongodb.log中收到此错误

http://pastebin.com/C0tv8HQN

我需要帮助..我错了?

5 个答案:

答案 0 :(得分:36)

我遇到了同样的问题,但是由于similar question而能够解决它。您需要确保/vol/db/拥有mongodb

sudo chown -R mongodb:mongodb /vol/db/

如果您收到错误chown: invalid user: 'mongodb:mongodb',请检查/etc/passwd以查看是否存在类似的用户(例如mongod)。

答案 1 :(得分:19)

最简单的是

sudo chmod 777 /data/db

答案 2 :(得分:5)

如果在更改新数据库路径的权限和所有权后,您仍然看到此问题,请运行getenforce以查看您是否正在使用SELinux在强制模式下运行的系统。 如果getenforce返回'enforcing',则selinux可能是权限错误的原因,因为mongodb现在正在其原始上下文范围之外运行,因为db位置已更改为/ var / lib / ...

我不知道细节,但是在没有为新环境编写自己的selinux策略的情况下解决问题的一种强力方法是简单地关闭selinux: - /

sudo setenforce 0

理想情况下,如果您计划在生产中运行,您将了解如何更新selinux政策。

答案 3 :(得分:2)

我建议通过阅读mongo log

来检查错误是什么
tail -50 /var/log/mongodb/mongodb.log

您可以立即找到问题(包括权限)

答案 4 :(得分:2)

尝试以下方法:

$ sudo chmod 755 /vol/db && sudo chown $USER /vol/db