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

Mongodは、/ data/dbフォルダーがないと文句を言います

    間違った場所にディレクトリを作成しました

    / data / dbは、「/」ルートディレクトリの直下にあることを意味しますが、「/root」ホームディレクトリなどの別のディレクトリ内に「data/ db」(先頭の/なし)を作成した可能性があります。

    このディレクトリをrootとして作成する必要があります

    sudoを使用する必要があります 、例: sudo mkdir -p /data/db

    または、su -を実行する必要があります スーパーユーザーになり、mkdir -p /data/dbでディレクトリを作成します

    注:

    MongoDBには、別の場所にデータディレクトリを作成できるオプションもありますが、常に手動でdb-pathを指定する必要があるため、DBリカバリなどが少し複雑になるため、通常はお勧めできません。そんなことはお勧めしません。

    編集:

    表示されるエラーメッセージは、「ロックファイルを作成/開くことができません:/data/db/mongod.lock errno:13Permissiondenied」です。 。作成したディレクトリには正しい権限と所有権がないようです。MongoDBプロセスを実行するユーザーが書き込み可能である必要があります。

    '/ data / db /'ディレクトリの権限と所有権を確認するには、次のようにします:(権限と所有権は次のようになります)

    $ ls -ld /data/db/
    drwxr-xr-x 4 mongod mongod 4096 Oct 26 10:31 /data/db/
    

    左側の「drwxr-xr-x」は、ユーザー、グループ、その他の権限を示しています。「mongod mongod」は、ディレクトリの所有者と、そのディレクトリが属するグループを示しています。この場合、どちらも「mongod」と呼ばれます。

    '/ data / db'ディレクトリに上記の権限と所有権がない場合は、これを実行してください

    まず、mongoユーザーのユーザーとグループを確認します。

    # grep mongo /etc/passwd
    mongod:x:498:496:mongod:/var/lib/mongo:/bin/false
    

    デーモンであるため、/ etc/passwdにmongodのエントリが必要です。

    sudo chmod 0755 /data/db
    sudo chown -R 498:496 /data/db    # using the user-id , group-id
    

    次のように、ユーザー名とグループ名を使用することもできます:(これらは/ etc/passwdと/etc/ groupにあります)

    sudo chown -R mongod:mongod /data/db 
    

    それでうまくいくはずです。

    以下のコメントでは、これを使用した人もいます:

    sudo chown -R `id -u` /data/db
    sudo chmod -R go+w /data/db
    

    または

    sudo chown -R $USER /data/db 
    sudo chmod -R go+w /data/db
    

    欠点は、$ USERがログインシェルを持つアカウントであるということです。セキュリティ上の理由から、デーモンにはシェルがないのが理想的です。そのため、上記のパスワードファイルのgrepに/ bin/falseが表示されます。

    ディレクトリ権限の意味をよりよく理解するには、ここをクリックしてください:

    http://www.perlfect.com/articles/chmod.shtml

    たぶん、Googleで見つけることができるチュートリアルの1つである「初心者向けUNIX」もチェックしてください。



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

    2. 共有ライブラリのロード中にエラーが発生しました。共有オブジェクトファイルを開くことができません:そのようなファイルまたはディレクトリはありません(hiredis)

    3. MongoDB findAndModify()

    4. MongoDBで既存のドキュメントを更新する方法