[解決済み] Mac OS 10.15にアップグレードしたらMongoDBがデータディレクトリを見つけられなくなった (Catalina)
質問
今日、MacOS 10.15 (Catalina) にアップデートしました。このとき
mongod
をターミナルで実行すると
/data/db
ディレクトリが見つかりません。
➜ /Users/william > mongod
2019-10-08T17:02:44.183+0800 I CONTROL [main] Automatically disabling TLS 1.0, to force-enable TLS 1.0 specify --sslDisabledProtocols 'none'
2019-10-08T17:02:44.209+0800 I CONTROL [initandlisten] MongoDB starting : pid=43162 port=27017 dbpath=/data/db 64-bit host=Williams-MacBook-Pro-6.local
2019-10-08T17:02:44.209+0800 I CONTROL [initandlisten] db version v4.0.3
2019-10-08T17:02:44.209+0800 I CONTROL [initandlisten] git version: 7ea530946fa7880364d88c8d8b6026bbc9ffa48c
2019-10-08T17:02:44.209+0800 I CONTROL [initandlisten] allocator: system
2019-10-08T17:02:44.209+0800 I CONTROL [initandlisten] modules: none
2019-10-08T17:02:44.209+0800 I CONTROL [initandlisten] build environment:
2019-10-08T17:02:44.209+0800 I CONTROL [initandlisten] distarch: x86_64
2019-10-08T17:02:44.209+0800 I CONTROL [initandlisten] target_arch: x86_64
2019-10-08T17:02:44.209+0800 I CONTROL [initandlisten] options: {}
2019-10-08T17:02:44.211+0800 I STORAGE [initandlisten] exception in initAndListen: NonExistentPath: Data directory /data/db not found., terminating
2019-10-08T17:02:44.211+0800 I NETWORK [initandlisten] shutdown: going to close listening sockets...
2019-10-08T17:02:44.211+0800 I NETWORK [initandlisten] removing socket file: /tmp/mongodb-27017.sock
2019-10-08T17:02:44.211+0800 I CONTROL [initandlisten] now exiting
2019-10-08T17:02:44.211+0800 I CONTROL [initandlisten] shutting down with code:100
➜ /Users/william >
でMongoDBをインストールしようとしたところ
brew
:
brew install mongodb
➜ /Users/william > brew install mongodb
Updating Homebrew...
Error: mongodb: unknown version :mountain_lion
何かお手伝いできることはありますか?
どのように解決するのですか?
これが主なエラーです。
initAndListen で例外が発生しました。NonExistentPath: データディレクトリ /data/db が見つかりません。
Catalina には驚くべき変更がありました。ルートディレクトリへの変更を許可しないのです (これについては フォーラムスレッド でも議論されました)。
% sudo mkdir -p /data/db
mkdir: /data/db: Read-only file system
残念ながら、これは Apple の Catalina リリース ノート で簡単に触れているほかは Catalina の機能 :
macOS Catalina は、専用の読み取り専用システムボリュームで実行されます。
ディレクトリのため
/data/db
は MongoDB のデフォルトとしてコード化されているので、 回避するには別の
dbpath
を指定することです。たとえば
mongod --dbpath ~/data/db
これでMongoDBのデータがホームディレクトリに配置されます。ただ、パスが
~/data/db
が実際に存在することを確認してください。
代替方法
別の方法として、次の手順で行います。
macOSにMongoDBコミュニティーエディションをインストールする
を活用することで
brew
:
brew tap mongodb/brew
brew install mongodb-community
これは、デフォルトでいくつかの追加ファイルを作成します。
- 設定ファイル (/usr/local/etc/mongod.conf)
- ログディレクトリのパス(/usr/local/var/log/mongodb)
- データディレクトリのパス(/usr/local/var/mongodb)
実行するには
mongod
を実行するには、次のどちらかを行います。
-
コマンドラインから手動でコマンドを実行します (これは便宜上エイリアスにすることができます)。
mongod --config /usr/local/etc/mongod.conf
-
MongoDBをサービスとして動作させるには
brew services
. これは MongoDB を (レプリカセットではなく) 独立したノードとして実行するので、 たとえばチェンジストリームなど oplog に依存する機能はmongod
設定ファイルを変更しない限り動作しません。brew services start mongodb-community
関連
-
[解決済み】MongoDBデータベースの名前を変更する方法とは?
-
[解決済み] 複合リテラルのキー無しフィールドの使用
-
[解決済み] HomebrewでMongoDBをインストールする
-
[解決済み] MongoDBでコレクションを削除するには?
-
[解決済み] mongodの書き込みに関するデフォルトの懸念はどのバージョンにありますか?
-
[解決済み] mongodb サーバーに接続しようとすると、mongo コマンドが認識されません。
-
[解決済み] mongo グループクエリ フィールドを保持する方法
-
[解決済み] MongoDBでサブドキュメントの配列をフィルタリングする方法 [重複] (英語)
-
[解決済み] MongoDB集計フレームワーク match OR
-
[解決済み] Mongo: 特定のフィールドを持たない項目を検索する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Mongod が /data/db フォルダがないと文句を言う問題
-
[解決済み] E: mongodb-org パッケージが見つかりません。
-
[解決済み] mongodb count フィールド/キーごとの明確な値の数
-
[解決済み] MongoDB - 管理者ユーザが認証されていない
-
[解決済み] MongoDB Compass: select distinct フィールド値
-
[解決済み】Dockerコンテナのディスク使用量を分析する方法
-
[解決済み】MongoDBで、あるデータベースから別のデータベースにコレクションをコピーする方法
-
[解決済み】MongoDBで整数を挿入しようとすると、浮動小数点が挿入される。
-
[解決済み] MongoDb の 2 つのフィールドを比較するクエリ条件
-
[解決済み] なぜMongoDBではインデックスの方向が重要なのか?