【问题标题】:Cant find /data/db folder (MongoDB)找不到 /data/db 文件夹(MongoDB)
【发布时间】:2014-05-28 19:42:24
【问题描述】:

我找不到为 MongoDB 创建的 ~/data/db 文件夹。

我在我的根文件夹中使用“sudo mkdir - p /data/db”创建了它。我不确定“sudo”命令的作用,因为该文件夹似乎以某种方式隐藏。如果我导航到根文件夹,它不包含 /data/db 文件夹。虽然我的 MongoDB 工作正常,但我可以将内容保存到数据库中。

我在 root 中尝试了“sudo ls”,但没有结果。

要让我的 mongoDB 运行,我必须这样做: “须藤 ./mongod” “须藤 ./mongo”

在我的 mongodb/bin 文件夹中。

如果我不输入 sudo 会出现随机错误(如果需要,我可以在此处插入)。

TLDR:似乎我的 ~/data/db 处于某些隐私设置之下。在查找器中找不到。

【问题讨论】:

    标签: node.js mongodb


    【解决方案1】:

    sudo 表示您以root 用户身份创建文件夹,这意味着它将使用root 的默认权限创建 - 通常,不足以让其他用户使用它。

    我也对您真正想要实现的目标感到困惑。您是否尝试在主目录 (mkdir -p ~/data/db) 或根目录 (sudo mkdir -p /data/db) 中创建 /data/db 文件夹?您提到两者好像它们是等价的,但实际上并非如此。假设您的用户名为bangalter,则前者在/home/bangalter/data/db,后者在/data/db。显然,如果您要 sudo 运行 mongodb,则您是以 root 用户的身份执行它,其 home 既不是 / 也不是 /home/bangalter,而是 /home/root

    简而言之:您对 mongodb 没有问题,但对 unix 用户管理/目录结构不熟悉。然而,这很容易解决,因为实际上有成千上万的文章、书籍和教程。

    【讨论】:

    • 这解释了很多我不知道的事情。谢谢。有什么方法可以让我在 Finder 中访问 root 用户的文件吗?我有兴趣查看 mongoDB 保存的实际文件。我将如何解决必须在所有内容上使用“sudo”的问题?我可以让 data/db 文件夹成为我自己的用户而不是 root 用户的文件夹吗?
    • 嗯,对于您的特定用例,最简单的解决方案可能是让您指定您希望 mongodb 通过其 --dbpath PATH 参数存储其数据文件的位置 - 例如,mongod --dbpath ~/data/db
    • 非常感谢。在这里我的理解取得了很大的进步。我使用 ~/data/db 路径启动了 mongodb,并且能够使用“sudo ./mongo”启动 shell 并插入一些文件并看到它们在 finder 中弹出。最后一个问题:为什么你必须使用 sudo 而不是 mongoD 运行 shell?
    • 我能想到的唯一解释是,除了root,shell 对任何人都没有可执行权限。使用which mongo 查看二进制文件的位置,ls -l /path/to/mongo 查看权限,然后使用chmod 更改权限。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-05
    相关资源
    最近更新 更多