设置Mongodb文件夹的读/写权限

时间:2015-03-11 13:03:36

标签: bash mongodb file-permissions chown

我刚刚在OSX上安装MongoDB并使用sudo mkdir -p /data/db设置目录结构。

当我尝试从我的用户帐户运行mongod时,它会返回一条错误消息,指出我的用户帐户没有/data/db的读/写权限。

如何为/data/db的帐户设置正确的读/写权限?

8 个答案:

答案 0 :(得分:73)

确保运行mongod的用户帐户具有正确的目录权限。您可以检查设置的权限如下:

ls -ld /data/db/

如果设置得当,它们看起来应该是这样的......

  

drwxr-xr-x X user wheel XXX Date Time /data/db/

如果权限设置不正确,您在尝试运行mongod

时可能会看到与此类似的错误
  

exception in initAndListen: XXXXX Unable to create/open lock file: /data/db/mongod.lock errno:13 Permission denied Is a mongod instance already running?, terminating

要获取设置权限,您可以运行以下命令

sudo chmod 0755 /data/db && sudo chown $USER /data/db

答案 1 :(得分:8)

sudo chmod 777 /data/db/ 

应该适用于Mac。在运行此cmd之前,权限类似于

drwxr-xr-x  X User  wheel  Date /data/db

运行cmd后

drwxrwxrwx  X User  wheel  Date /data/db

答案 2 :(得分:5)

这对我有用。我正在使用Mac,但如果你正在使用Windows,你可以试试。

sudo chmod 777 /data/db

答案 3 :(得分:3)

有三类用户:所有者,群组中的用户以及其他所有用户; chmod 777 /path/to/file允许每个人读/写文件,但chmod 775 /path/to/file只允许所有者/组读/写文件。如果您正在开发Web服务器,请务必使用chmod 775 /path/to/file

一些有用的阅读,特别是对于使用777,775等原因的推理而不是其他数字:https://www.maketecheasier.com/file-permissions-what-does-chmod-777-means/

答案 4 :(得分:1)

以上建议均不正确,mongodb-org-3.4.16-1.el7.x86_64还有其他问题。它不能以自定义数据库路径开头。

[root@localhost vagrant]# chmod 777 /data/ /data/mongodb
[root@localhost vagrant]# chown mongod:mongod /data/ /data/mongodb
[root@localhost vagrant]# ls -lad /data/mongodb/
drwxrwxrwx. 2 mongod mongod 6 Jul 11 15:24 /data/mongodb/
[root@localhost vagrant]#  systemctl start mongod
Job for mongod.service failed because the control process exited with error code. See "systemctl status mongod.service" and "journalctl -xe" for details.
[root@localhost vagrant]# stat /data/mongodb^C
[root@localhost vagrant]# !tail
tail /var/log/mongodb/mongod.log
2018-07-11T15:39:10.786+0000 I STORAGE  [initandlisten] exception in initAndListen: 20 Attempted to create a lock file on a read-only directory: /data/mongodb, terminating
2018-07-11T15:39:10.786+0000 I NETWORK  [initandlisten] shutdown: going to close listening sockets...
2018-07-11T15:39:10.786+0000 I NETWORK  [initandlisten] shutdown: going to flush diaglog...
2018-07-11T15:39:10.786+0000 I CONTROL  [initandlisten] now exiting
2018-07-11T15:39:10.786+0000 I CONTROL  [initandlisten] shutting down with code:100
[root@localhost vagrant]# rpm -qa | grep mongo
mongodb-org-tools-3.4.16-1.el7.x86_64
mongodb-org-shell-3.4.16-1.el7.x86_64
mongodb-org-server-3.4.16-1.el7.x86_64
mongodb-org-mongos-3.4.16-1.el7.x86_64
mongodb-org-3.4.16-1.el7.x86_64

答案 5 :(得分:0)

没有给出的答案对我有用。我最终将我的个人操作系统用户配置为root用户,然后手动转到db文件夹 - 右键单击​​以查看信息 - 并添加了自己的读写权限。

答案 6 :(得分:0)

根据Mongodb大学M103课程,权限级别为

sudo chmod 600 /path/to/db

答案 7 :(得分:-1)

跑步

sudo chown group:user /data/db

其中group是您的一组用户