Macでmkdir / data / dbを試行するときの読み取り専用ファイルシステム


113

メインディレクトリに新しいフォルダを作成しようとしています

あらゆる種類の例を試しました

sudo mkdir /data/db

sudo mkdir -p /data/db

私は得続けます

mkdir:/ data:読み取り専用ファイルシステム


1
stackoverflow.com/questions/58283257/…これは以下のコメントに答えます。
カミーユ

回答:


155

Macを使用していて、Catalinaに更新した場合、ルートフォルダは書き込みできなくなります。

ディレクトリを別の場所に変更しました。

今のところこのコマンドを使用しています

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

4
それを永続的にする方法はありますか?MongoDBサーバーを起動するたびに入力する必要があります!
AVポール

2
@AVPaulおそらく最善の解決策ではありませんが、パスを参照するエイリアスを作成することはできます。
DjangoBlockchain

1
@JeffGoesユーザーを実際の名前に置き換えなかったと思います。
アマン

2
@AlexLそれは私のためにも働いています。しかし、dev mongo dbを実行するたびに、mongod --dbpath = / Users / my_USER_name / data / dbと入力する必要がありますか?次回mongodを実行すると、/ data / dbが見つからないと表示されます
ShoebMirza20年

3
/usr/local/etc/mongod.confの下にあるMacを使用している場合は、mongoDB構成ファイルでdbPathを設定することで永続的にすることができます。次に、次を追加します: "storage:dbPath:path to your db directory"
Samoox 2010

81

公式ドキュメントからhttps://docs.mongodb.com/manual/tutorial/install-mongodb-on-os-x/

homebrewをインストールし、次のコマンドを実行します

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 dbsmongoシェルで実行できることを確認します


brew services start mongodb-community =>エラー:Formulamongodb-communityがインストールされていません。起動する必要があります:醸造サービスはmongodb / brew / mongodb
community @ 4.2を

18

新しいmacOSCatalinaアップデートでは、フォルダ/data/dbは読み取り専用になり、変更することはできません。次の手順に従って、別のフォルダーに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
ステップ1の前にこれを行いました:sudo mkdir -p /System/Volumes/Data/data/db&& sudo chown -R `id -un` /System/Volumes/Data/data/db。これらのフォルダがすでに存在するかどうかはわかりませんが、@ xgqfrmsの回答をこれと組み合わせています。これをどうもありがとう、私を夢中にさせていました。
twknab

11

mongoddbフォルダーのパスを永続的に変更します。

これらのドキュメントに続いて彼らは大まかにこれを言います。mongodがbrewサービスで開始された場合:

$ brew services start mongodb-community@4.2

パスで設定ファイルを使用します /usr/local/etc/mongod.conf


これを修正するには、構成ファイルを編集します。

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

そして、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 

ファイルを保存し、brewでmongodを再起動します。

$ brew services restart mongodb-community@4.2

1
これは私のために仕事をしませんでした、モンゴはまだ/データ/ DBに探しています
Xen_mar

@Xen_marファイルを編集した後にmongodを実行しようとしていましたか?どうやらのmongodはすでにBREWサービスによって実行された開始
JEC

5

そのため、macOS Catalinaを使用して、Appleはセキュリティ目的で新しいボリュームを作成しました。macOS Catalinaを使用している場合は、に/data/dbフォルダを作成する必要がありますSystem/Volumes/Data

これらのコマンドに従ってください

  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. お楽しみください😉


4

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

refs

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

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

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


3

これは、私がUdemyコースを受講していたときにうまくいったことです。1。ターミナルにこれを入力してHomeBrewをインストールします。

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
  1. 古い/ data / dbフォルダー(現在のデータベースをバックアップする場合)をルート以外のフォルダーに移動し、次の手順に進みます

  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シェルシンボル>が表示されます。

これが機能するかどうか教えてください;)この記事に基づいて、それを理解するのにほぼ2時間かかりました:https//apple.stackexchange.com/questions/362883/mongodb-doesnt-work-after-update-to -macos-catalina-10-15

乾杯、ラドゥ


3

Macを使用していて問題に直面している場合は、以下のコマンドが役立ち whoamiます。変数は現在のユーザーを取得します

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

3

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

2

/data/ディレクトリを作成することはできません。これはAPFSファイルシステム用に予約されています。この問題については、Bombichのブログを確認してください。


それで、この読み取り専用ファイルの問題は解決できますか?私も同じ問題を抱えています
ZainabHammami19年

2
いいえ、ディレクトリに別の名前を使用する必要があります。考えられる解決策は、ルートディレクトリとして許可されている別のディレクトリ内にデータディレクトリを作成することです。
jvarela

2

これは私がしました:

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

「usr / local / var / mongodb」という新しいパス以降。


2

なぜAppleがそれをしたのか、私は途方に暮れています。それで、今、私たちは彼ら以外のルートレベルのディレクトリを持つことができませんか?これはまったく意味がなく、root権限でこれらのフォルダを作成している人は自分が何をしているかを知っています


1

macOS Catalinaでは、ファイルやデータを読み取り専用のシステムボリュームに保存したり、ターミナルなどのコマンドラインから「ルート」ディレクトリ(/)に書き込んだりすることはできなくなりました。


1

David Buckがここ書いたことに追加するに、最初に実際にディレクトリを作成する必要があります。あなたはそれをすることができます:

sudo mkdir / System / Volumes / Data / data / db

このエラーが発生した場合:

「コマンドラインの解析エラー:認識されないオプション '--dbpath / System / Volumes / Data / data / db' try'mongod --help 'for moreinformation」

エイリアスを作成した後、それはDavid Buckが(本当に役立つコメントをしている間)彼の答えのスペースを逃したからです。

これを修正するには、次のように入力します

unalias mongod

次に入力します

エイリアスmongod = "sudo mongod --dbpath / System / Volumes / Data / data / db"


それは私ではありませんでした...クレジットはEugèneBeliaevに行くべきです。私はちょうど...書式設定のための彼らの答えを編集した
デイビット・バック

0

Mac版のカタリナがルートフォルダを作成しましたが、書き込み可能ではなくなりました。

Brewには、新しいパス(それ自体が作成する)を使用するように更新されたバージョンのmongodbが/usr/local/var/mongodbあり、次の手順に従うと問題が修正されます。

更新されたmongodb-community-editionをインストールするためのガイド

brew install mongodb-community@VERSION ここで、修正された最初のバージョンは4.2です。


0

カタリナに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/cf19baa9​​1b1d79d8ae2b305fb7e1f799

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.