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

时间:2011-03-14 15:39:44

标签: ubuntu permissions mongodb chown

我使用official packages(mongodb-stable)安装了MongoDB,并按照Quickstart guide进行了操作,其中包括:

  

默认情况下,MongoDB会将数据存储在   /data/db,但不会自动生成   创建该目录。要创建它,   做:

$ sudo mkdir -p /data/db/
$ sudo chown `id -u` /data/db
     

您也可以告诉MongoDB使用   不同的数据目录,用   --dbpath选项。

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:

是什么给出了?

2 个答案:

答案 0 :(得分:70)

您以root身份创建了/data/db,因此它拥有这些权限。您可以将权限更改为您的用户帐户,也可以更改为mongo运行的任何权限。

chown -R username /data/db

/data

您也可以设置一个组

chown -R username.groupname

-R以递归方式执行,因此它将影响您以root身份运行mongoDB的所有文件。

答案 1 :(得分:1)

我刚刚在 2021 年的 RHEL 8 上遇到了同样的问题。

我可以使用 sudo 权限运行 sudo mongod,但不能不能将其作为服务启动:sudo systemctl start mongod

我尝试了许多解决方案并在每次尝试后进行测试,最终为我解决的是将 /data/db//var/lib/mongo//var/log/mongodb/ 的所有权更改为 mongod

确切的命令:

sudo chown -R mongod:mongod /var/lib/mongo/
sudo chown -R mongod:mongod /var/log/mongodb/
sudo chown -R mongod:mongod /data/