MongoDB仅在Ubuntu上以root身份运行时才起作用 - 数据目录问题

YXD*_*YXD 37 permissions ubuntu mongodb chown

我使用官方软件包(mongodb-stable)安装了MongoDB ,并按照快速入门指南进行了操作,其中包括:

默认情况下,MongoDB会将数据存储在其中 /data/db,但不会自动创建该目录.要创建它,请执行:

$ sudo mkdir -p /data/db/
$ sudo chown `id -u` /data/db
Run Code Online (Sandbox Code Playgroud)

您还可以使用该--dbpath选项告诉MongoDB使用不同的数据目录 .

MongoDB只会在我运行时启动sudo mongod- 如果我尝试运行只是mongod我得到错误:

Mon Mar 14 15:27:07 [initandlisten] couldn't open /data/db/test.ns errno:13 Permission denied
Mon Mar 14 15:27:07 [initandlisten]   couldn't open file /data/db/test.ns terminating
Mon Mar 14 15:27:07 dbexit:
Run Code Online (Sandbox Code Playgroud)

是什么赋予了?

小智 71

/data/db以root身份创建,因此它具有这些权限.您可以更改您的用户帐户的权限,或任何您运行mongo的权限.

chown -R username /data/db
Run Code Online (Sandbox Code Playgroud)

要么 /data

您也可以设置一个组

chown -R username.groupname
Run Code Online (Sandbox Code Playgroud)

-R做它递归,所以它会影响您创建运行的MongoDB的根已经是所有文件.

  • 谢谢,我把目录chown到mongodb:mongodb而不是我的用户名:my group. (3认同)
  • 将所有者以root身份离开并只分配一个组有什么好处?或者将所有者专门设置为用户是否更好? (2认同)