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

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

尝试了各种各样的例子

sudo mkdir /data/db

sudo mkdir -p /data/db

我一直在想

Mkdir:/data: 只读文件系统

160519 次浏览

无法创建 /data/目录。该目录是为 APFS 文件系统保留的。请查看有关此问题的 邦比奇的博客。

如果您有一台 Mac 并且更新到 Catalina 或更新的版本,则根文件夹为 no 更长的可写性。

我只是在别的地方更改了目录。

现在一直在使用这个命令

mongod --dbpath=/Users/user/data/db

这就是我在接受 Udemy 课程时的感受: 1. 在终端中输入以下命令安装 HomeBrew

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
  1. 将旧的/data/db 文件夹(如果您想备份当前的 dbs)移动到一个非根文件夹中,然后继续下一步

  2. 运行在终端 A) brew uninstall mongodb B)如有需要,运行 brew uninstall --force mongodb C) brew tap mongodb/brew D) brew install mongodb-community E) brew services start mongodb/brew/mongodb-community

  3. 现在只需要在终端中运行 mongo,就会看到 mongo shell 符号 > 。

如果可以,请告诉我;) 根据这篇文章,我花了将近2个小时才弄明白: Https://apple.stackexchange.com/questions/362883/mongodb-doesnt-work-after-update-to-macos-catalina-10-15

干杯, Radu

从官方文件 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

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

使用 macOS Catalina,您不能再将文件或数据存储在只读系统卷中,也不能从命令行写入“ root”目录(/) ,比如在 Terminal 中。

Mac 版本的 Catalina 使得根文件夹不再可写。

Brew 有一个更新版本的 mongodb,它使用一个新的路径(它自己创建) ,/usr/local/var/mongodb和下面的说明将解决这个问题:

安装更新的 mongob- 社区版指南

brew install mongodb-community@VERSION,其中第一个版本是4.2

做出永久改变的路径蒙古 db文件夹。

这些文件之后,他们大致是这样说的。如果蒙古人是从啤酒服务开始的:

$ brew services start mongodb-community@4.2

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


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

$ vim /usr/local/etc/mongod.conf

然后像这样将 dbPath改为你的主目录:

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

保存文件并重新启动蒙哥与酿造:

$ brew services restart mongodb-community@4.2

我是这么做的:

mkdir -p usr/local/var/mongodb/data/db

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

如果你在 Mac 上面对这个问题,那么下面的命令是有用的, whoami变量将获取当前用户

mongod --dbpath=/Users/$(whoami)/data/db

我用简单的步骤创建了一个 gist 来在 catalina 上安装和运行 mongodb

# install homebrew (https://brew.sh/) and run the following commands
sudo chown -R $(whoami) $(brew --prefix)/*
brew tap mongodb/brew
brew install mongodb-community@4.2


## --- aliases to set in your zshrc file


# open your zshrc file
open ~/.zshrc
# copy and paste shorcuts in the end of the file
alias mongod='brew services run mongodb-community'
alias mongod-start='brew services start mongodb-community' #will start MongoDB automatically when you login into your Macbook
alias mongod-status='brew services list'
alias mongod-stop='brew services stop mongodb-community'


# restart your terminal
# type mongod in your terminal for run service & mongod-stop for finish it
# test your mongodb connection with
mongo
show dbs

Https://gist.github.com/sturmenta/cf19baa91b1d79d8ae2b305fb7e1f799

在新的 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

(Just for info-> $(whoami)只是一个返回当前用户的变量)

因此,苹果为了安全起见,创建了一个新的 MacOS Catalina 卷。如果您使用的是 macOS Catalina,则需要在 System/Volumes/Data中创建 /data/db文件夹。

遵守这些指令

  1. sudo mkdir -p /System/Volumes/Data/data/db
  2. sudo chown -R id-un /System/Volumes/Data/data/db

启动 MongoDB

  1. brew services run mongodb-community

  2. 好好享受吧

你不能再在 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


# macOS 10.14.x -
$ sudo mkdir -p /data/db


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


裁判

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

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

Https://www.youtube.com/watch?v=dx15wbkidxy

要添加到什么 大卫 · 巴克在这里写的,首先您必须实际创建目录。您可以使用:

Sudo mkdir/系统/卷/数据/数据/数据库

如果你得到这个错误:

”解析命令行时出错: 未识别选项 ’—— dbpath/System/Volume/Data/Data/db’try‘ monGod —— help’for more 资料”

在创建了这个别名之后,仅仅是因为大卫 · 巴克(在做出一个非常有用的评论时)在他的回答中漏掉了一个空格。

要解决这个问题,输入

Unalias monGod

然后打字

Alias mongod = “ sudo mongod —— dbpath/System/Volume/Data/Data/db”

Mongodb- 社区公式的默认路径

除了安装 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

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