我使用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:
是什么给出了?
答案 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/