コマンドを実行しようとしたとき
mongod --fork --logpath /var/log/mongodb.log
Amazon ec2 32ビットインスタンス(Amazon Linux AMIリリース2014.09)で、次のエラーが発生します。
2015-02-18T18:14:09.007+0000
2015-02-18T18:14:09.007+0000 warning: 32-bit servers don't have journaling
enabled by default. Please use --journal if you want durability.
2015-02-18T18:14:09.007+0000
about to fork child process, waiting until server is ready for connections.
forked process: 17116
ERROR: child process failed, exited with error number 1
また、プロセスでログファイルが作成されないことにも気付きました。
私は同じことをしていたが、それはパーミッションの問題であることが判明した。子プロセスの所有者がログパスにアクセスできない場合、またはログパスが存在しない場合、失敗します。
私がしたことは、ログディレクトリをホームディレクトリに配置することでした。
mkdir ~/log
mongod --fork --logpath ~/log/mongodb.log
/ var/logディレクトリに本当に配置したい場合は、許可を変更するだけです。
[Sudoで実行した場合でも]このエラーが発生した場合は、ログファイルのファイル名を/var/log/mongodb.logのように指定してください。 mongo docsを読み損ねてしまったので、/ var/log /のようなディレクトリパスだけがありました。
また、同じエラーが発生しましたが、Sudoを使用してSudo mongod --fork --logpath /var/log/mongodb.log
を実行しました。 @jryancantyが述べたように、それは単に許可エラーです。
古いものを削除しました
/var/run/mongodb/mongod.pid
そしてすべてが働いた。
キーファイルがある場合は、アクセス許可が開かれている可能性もあります。必ず0400に設定してください
ログパスを/var/mongodb/db/mongo.logではなくvar/mongodb/db/mongo.logに誤って設定したため、Mongoは/ homeに存在しないフォルダーにアクセスしようとしました。
ログファイルに/tmp/mongodb-27017.sockの問題がある場合、これは機能する可能性があります。
Sudo chown mongodb:mongodb /tmp/mongodb-27017.sock
Sudo mongod --fork --logpath /var/log/mongodb.log
Ubuntuでは、/ varのパーミッションを変更する必要はなく、logpathで完全なログファイル名を使用します
ユーザーの許可のために同じ問題が発生しました。ファイルを作成する許可を持っていないユーザーでubuntuにログインすると、このエラーも発生しました。
そのため、Sudoでコマンドを実行する必要があります。 :)
EPELリポジトリ(2.x)からmongoを削除し、mongoリポジトリ(4.x)からmongoをインストールした後、同じ問題が発生します。
journalctl -xeより:
ERROR: child process failed, exited with error number 1
私の場合、ルート権限を持つ古いログファイルがあります。正しい権限を設定するか、ログを削除してログディレクトリの権限を確認してください。