MongoDB 仅在 Ubuntu 上以 root 身份运行时才有效 - 数据目录问题
我使用官方软件包(mongodb-stable)安装了MongoDB,并按照快速入门指南 其中包括:
默认情况下,MongoDB 将数据存储在
<前><代码>$ sudo mkdir -p /data/db/ $ sudo chown `id -u` /data/db/data/db
,但不会自动 创建该目录。为了创造它, 做:您还可以告诉 MongoDB 使用 不同的数据目录,
--dbpath
选项。
仅当我运行 sudo mongod
时,MongoDB 才会启动 - 如果我尝试仅运行 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:
什么给出了?
I installed MongoDB with the official packages (mongodb-stable), and followed the Quickstart guide which includes:
By default MongoDB will store data in
/data/db
, but it won't automatically
create that directory. To create it,
do:$ sudo mkdir -p /data/db/ $ sudo chown `id -u` /data/db
You can also tell MongoDB to use a
different data directory, with the--dbpath
option.
MongoDB will only start if I run sudo mongod
- if I try and run just mongod
I get the error:
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:
What gives?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您以 root 身份创建了
/data/db
,因此它具有这些权限。您可以更改您的用户帐户的权限,或者您运行 mongo 的任何帐户的权限。或
/data
您还可以设置一个组
-R
递归地执行此操作,因此它将影响您已经以 root 身份运行 mongoDB 创建的所有文件。You created
/data/db
as root so it has those permissions. You can change the permissions to your user account, or whatever you have mongo running as.or
/data
You can also set a group
The
-R
does it recursively, so it will affect all the files you've created running mongoDB as root already.2021 年,我刚刚在 RHEL 8 上遇到了同样的问题。
我可以使用 sudo 权限运行 sudo mongod,但无法将其作为服务启动:
sudo systemctl 启动 mongod
。我尝试了很多解决方案并在每次尝试后进行了测试,最终为我解决的是更改
/data/db/
、/var/lib/mongo/
和 < code>/var/log/mongodb/ 到mongod
。确切的命令:
I just had the same issue on RHEL 8, in year 2021.
I could run
sudo mongod
with sudo privileges but could not start it as a service with:sudo systemctl start mongod
.I tried many solutions and tested after each attempt, what ultimately solved it for me is changing ownership of
/data/db/
,/var/lib/mongo/
, and/var/log/mongodb/
tomongod
.exact commands: