OK、これはすべて権限に帰着しますが、段階的に見ていきましょう。 sudo mongod
を実行すると 設定ファイルはまったくロードされません。文字通り、デフォルトでコンパイルされたポート27017、/ data / dbのデータベースパスなどで始まります。そのため、そのフォルダが見つからないというエラーが発生しました。 「Ubuntuのデフォルト」は、構成ファイルをポイントした場合にのみ使用されます(serviceコマンドの使用を開始した場合、これはバックグラウンドで実行されます)。
次に、次のように実行しました:
sudo mongod -f /etc/mongodb.conf
以前に問題がなかった場合は、今すぐ問題が発生します。通常の構成(通常のdbpathとログを指す)をrootユーザーとして使用してプロセスを実行しました。つまり、通常のMongoDBフォルダーには、root:root
のuser:groupを持つ多数のファイルが存在することになります。 。
これにより、通常のサービスとして再度開始しようとするとエラーが発生します。これは、mongodbユーザー(サービスの実行を試みる)には、これらのroot:root
にアクセスする権限がないためです。 ファイル、そして最も注目すべきことに、おそらくログファイルに書き込んで情報を提供することはできません。
したがって、通常のサービスとして実行するには、これらの権限を修正する必要があります。まず、MongoDBが現在rootとして実行されていないことを確認してから、次のようにします。
cd /var/log/mongodb
sudo chown -R mongodb:mongodb .
cd /var/lib/mongodb
sudo chown -R mongodb:mongodb .
これで修正されるはずです(user:groupがmongodb:mongodb
であると仮定します) )、ただし、ls -al
で確認するのがおそらく最善です。 または確かに同様。これが完了すると、サービスを正常に再開できるようになります。