sql >> データベース >  >> NoSQL >> MongoDB

Mac OS 10.15(Catalina)にアップグレードした後、MongoDBがデータディレクトリを見つけることができません

    これが主なエラーです:

    initAndListenの例外:NonExistentPath:データディレクトリ/ data / dbが見つかりません。、終了しています

    カタリナには意外な変更があります。ルートディレクトリへの変更は許可されません(これはフォーラムスレッドでも説明されています):

    % sudo mkdir -p /data/db
    mkdir: /data/db: Read-only file system
    

    残念ながら、これは、カタリナの機能での簡単な言及を除いて、アップルのカタリナリリースノートで明確に説明されていません:

    macOS Catalinaは、専用の読み取り専用システムボリュームで実行されます

    ディレクトリ/data/db以降 はMongoDBのデフォルトとしてコーディングされています。回避策は、別のdbpathを指定することです。 ルートディレクトリにありません。例:

    mongod --dbpath ~/data/db
    

    これにより、MongoDBのデータがホームディレクトリに配置されます。パスが~/data/dbであることを確認してください 実際に存在します。

    代替方法

    別の方法は、brewを利用して、macOSにMongoDBCommunityEditionをインストールする手順に従うことです。 :

    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
      
    • brew servicesを使用してMongoDBをサービスとして実行する 。これにより、MongoDBが(レプリカセットではなく)スタンドアロンノードとして実行されるため、oplogに依存する機能(例: mongodを変更しない限り、changestreamsは機能しません 構成ファイル:

      brew services start mongodb-community
      


    1. socket.ioでredis接続を再利用する方法は?

    2. JedisクライアントのRedisTemplateで1回の呼び出しで複数のリスト値を取得する方法

    3. JSON形式の「説明」からオンザフライでMongooseスキーマを定義する

    4. MongoDb:$ push /$addtosetの違い