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

发布于 2024-10-21 18:13:31 字数 796 浏览 0 评论 0原文

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

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

<前><代码>$ sudo mkdir -p /data/db/ $ sudo chown `id -u` /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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

过气美图社 2024-10-28 18:13:31

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

chown -R username /data/db

/data

您还可以设置一个组

chown -R username.groupname

-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.

chown -R username /data/db

or /data

You can also set a group

chown -R username.groupname

The -R does it recursively, so it will affect all the files you've created running mongoDB as root already.

挽清梦 2024-10-28 18:13:31

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

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

我尝试了很多解决方案并在每次尝试后进行了测试,最终为我解决的是更改 /data/db//var/lib/mongo/ 和 < code>/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/

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/ to mongod.

exact commands:

sudo chown -R mongod:mongod /var/lib/mongo/
sudo chown -R mongod:mongod /var/log/mongodb/
sudo chown -R mongod:mongod /data/
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文