在Mac上尝试mkdir / data / db时的只读文件系统

Dav*_*ina 23 macos terminal mongodb

我正在尝试在主目录中创建一个新文件夹

尝试了各种例子

sudo mkdir /data/db

sudo mkdir -p /data/db

我不断

mkdir:/ data:只读文件系统

Eug*_*aev 37

随着新的 macOS Catalina 更新,该文件夹/data/db变为只读,您无法对其进行修改。按照以下步骤在另一个文件夹中创建一个数据库:

  1. 更改mongod目录:

    sudo mongod --dbpath /System/Volumes/Data/data/db

  2. 给它一个别名以将其用作mongod

    alias mongod="sudo mongod --dbpath /System/Volumes/Data/data/db"

  3. 只需输入mongod您的终端,它应该可以工作。

额外=> 如果您需要为其授予当前用户权限,请使用以下代码行:

sudo chown -R $(whoami) /System/Volumes/Data/data/db

(仅供参考 ->$(whoami)只是一个返回当前用户的变量)

  • 我在步骤 1 之前执行了此操作: `sudo mkdir -p /System/Volumes/Data/data/db` && ```sudo chown -R `id -un` /System/Volumes/Data/data/db```。不确定这些文件夹是否已经存在,但将 @xgqfrms 的答案与此结合起来。非常感谢,这让我发疯。 (3认同)

Dav*_*ina 28

如果您拥有Mac并已更新到Catalina,则根文件夹不再可写。

我只是在其他地方更改了目录。

暂时使用此命令

mongod --dbpath=/Users/user/data/db
Run Code Online (Sandbox Code Playgroud)

  • 有没有办法让它永久化?每次启动 MongoDB 服务器时我都必须输入它! (4认同)
  • 如果您使用的是 mac,则可以通过在 mongoDB 配置文件中设置 dbPath 使其永久化,该文件位于 /usr/local/etc/mongod.conf 下。然后添加以下内容:“存储:dbPath:数据库目录的路径” (4认同)
  • 我忘了更新 OS X 是多么烦人,难怪我总是抗拒它 (4认同)
  • @AVPaul也许不是最好的解决方案,但你可以创建一个引用你的路径的别名。 (2认同)
  • @AlexL 它也对我有用。但是每次我想运行我的 dev mongo db 时是否都必须输入 mongod --dbpath=/Users/my_USER_name/data/db ?因为下次当我运行 mongod 时,它说 /data/db not found (2认同)

Jir*_*rik 12

永久更改 mongoddb文件夹的路径。

遵循这些文档,他们大致说了这一点。如果 mongod 是用 brew 服务启动的:

$ brew services start mongodb-community@4.2
Run Code Online (Sandbox Code Playgroud)

它将在路径中使用配置文件 /usr/local/etc/mongod.conf


要解决此问题,请编辑配置文件:

$ vim /usr/local/etc/mongod.conf
Run Code Online (Sandbox Code Playgroud)

并将dbPatheg更改为您的主目录,如下所示:

systemLog:
  destination: file
  path: /usr/local/var/log/mongodb/mongo.log
  logAppend: true
storage:
  dbPath: /Users/<username>/data/db
net:
  bindIp: 127.0.0.1 
Run Code Online (Sandbox Code Playgroud)

保存文件并使用 brew 重新启动 mongod:

$ brew services restart mongodb-community@4.2
Run Code Online (Sandbox Code Playgroud)


xgq*_*rms 10

你不能再在 Mac Catalina 的根目录上创建文件夹了!

https://www.apple.com/macos/catalina/features/

专用系统体积

macOS Catalina 在专用的只读系统卷中运行——这意味着它与所有其他数据完全分离,有助于提高 macOS 的可靠性。

# macOS Catalina, mkdir path
$ sudo mkdir -p /System/Volumes/Data/data/db

# give permissions
$ sudo chown -R `id -un` /System/Volumes/Data/data/db

Run Code Online (Sandbox Code Playgroud)
# macOS 10.14.x -
$ sudo mkdir -p /data/db

# macOS 10.15.x +
$ sudo mkdir -p /System/Volumes/Data/data/db

Run Code Online (Sandbox Code Playgroud)

参考

https://discussions.apple.com/thread/250720711

https://zellwk.com/blog/install-mongodb/

https://www.youtube.com/watch?v=DX15WbKidXY


小智 6

来自官方文档https://docs.mongodb.com/manual/tutorial/install-mongodb-on-os-x/

安装自制程序并运行以下命令

sudo chown -R $(whoami) $(brew --prefix)/*

然后

brew tap mongodb/brew

然后

brew install mongodb-community@4.2

brew services start mongodb-community

要么

mongod --config /usr/local/etc/mongod.conf

然后

ps aux | grep -v grep | grep mongod

mongo

验证您可以show dbs在mongo shell中运行

  • brew services start mongodb-community =&gt; 错误:未安装公式 `mongodb-community`。你必须启动:brew services start mongodb/brew/mongodb-community@4.2 (5认同)

小智 6

因此,为了安全起见,Apple 在 macOS Catalina 中创建了一个新的 Volume。如果您使用的是 macOS Catalina,则需要/data/dbSystem/Volumes/Data.

遵循这些命令

  1. sudo mkdir -p /System/Volumes/Data/data/db
  2. sudo chown -R 身份证号 /System/Volumes/Data/data/db

启动MongoDB

  1. brew services run mongodb-community

  2. 享受


Lau*_*bou 6

我不知道为什么 Apple 这样做.. 所以现在,除了他们的目录之外,我们不能有任何根级目录?这没有任何意义,使用 root 权限创建这些文件夹的人知道他们在做什么


fra*_*nse 5

我这样做了:

mkdir -p usr/local/var/mongodb/data/db
Run Code Online (Sandbox Code Playgroud)

因为新路径是“usr/local/var/mongodb”。


Anj*_*... 5

如果您使用的是 mac 并且面临这个问题,那么下面的命令很有用, whoami变量将获取当前用户

mongod --dbpath=/Users/$(whoami)/data/db
Run Code Online (Sandbox Code Playgroud)


小智 5

mongodb-community 公式的默认路径

除了安装 MongoDB 服务器和工具二进制文件之外,mongodb-community 公式还创建了:

  • 一个配置文件:/usr/local/etc/mongod.conf
  • 一个日志目录路径:/usr/local/var/log/mongodb
  • 一个数据目录路径:/usr/local/var/mongodb

然后它对我有用:

mkdir -p usr/local/var/mongodb/data/db
Run Code Online (Sandbox Code Playgroud)