我正在尝试使用不同的配置文件在同一台centos机器上运行多个mongod实例。
我在将实例作为服务运行时遇到以下错误:
sudo service mongod1 start
/var/lib/mongo1: boost::filesystem::status: Permission denied: "/var/lib/mongo1/mongod.lock"
我使用:
添加了/ var / lib / mongo1的权限sudo chmod -R 600 /var/lib/mongo1
我最后还尝试了700,755和777,但似乎没有任何效果。
mongod:mongod is the owner of the folder /var/lib/mongo1
感谢任何帮助。
答案 0 :(得分:1)
我知道这真的很晚,但是我为此苦苦挣扎了好几天,现在才找到解决办法。话虽这么说,对于将来遇到此问题的未来用户,如果您使用SELinux,则解决方案是对照您自己检查默认mongodb路径的上下文,以通过执行来确保它们相同
ls -dZ /var/lib/mongo/
输出应如下所示
drwxr-xr-x. mongod mongod system_u:object_r:mongod_var_lib_t:s0 /var/lib/mongo/
如果不是,则可以通过
复制它chcon -R --reference=/var/lib/mongo /your/path
可以找到源here
答案 1 :(得分:0)
可能缺少lock
文件?这可以解释为什么chmod
没有达到预期的效果......
尝试:
touch /var/mongo1/mongod.lock
chown mongod:mongod
chmod 600 /var/mongo1/mongod.lock
答案 2 :(得分:0)
请记住,目录需要有执行权限,但目录内的文件不需要执行权限。
以下 2 个命令对我有用
$ sudo chmod -R 770 /var/lib/mongo1
$ sudo find /var/lib/mongo1 -type f -exec chmod 660 {} \;
这将首先赋予 /var/lib/mongo1
下的所有执行权限,然后将所有普通文件恢复为只有读写,但不能执行。