当前位置:  开发笔记 > 编程语言 > 正文

mongodb数据目录权限

如何解决《mongodb数据目录权限》经验,为你挑选了3个好方法。

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

现在我想将数据目录更改为/vol/db..so我创建了目录/ vol/db并使用sudo chown -R id -u/ vol/db 更改了权限,并将db路径条目更改为/ vol/db in /等/ mongodb.conf

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

http://pastebin.com/C0tv8HQN

我需要帮助..我错了?



1> 小智..:

我遇到了同样的问题,但由于类似的问题,我能够解决它.你需要确保/vol/db/拥有mongodb.

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

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


如果我收到无效的用户错误,并且/ etc/passwd中没有类似的内容,该怎么办?

2> Federico Giu..:

最简单的是

sudo chmod 777 /data/db


此命令将为相关目录提供非常开放的权限.来自@Kaezarrex(`sudo chown mongodb:mongodb/data/db`)的答案应该具有所需的效果,而无需如此广泛地打开权限.
永远不要给文件777,特别是如果它在生产服务器上

3> drpoo..:

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

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

sudo setenforce 0

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

推荐阅读
低调pasta_730
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有