間違った場所にディレクトリを作成しました
/ 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」もチェックしてください。