39

我使用官方软件包(mongodb-stable)安装了 MongoDB ,并遵循了快速入门指南,其中包括:

默认情况下,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:

是什么赋予了?

4

2 回答 2

75

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

chown -R username /data/db

或者/data

还可以设置组

chown -R username.groupname

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

于 2011-03-14T16:24:35.417 回答
1

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

我可以sudo mongod使用 sudo 权限运行,但无法使用以下命令将其作为服务启动: 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/
于 2021-08-02T19:08:16.717 回答