このチュートリアルに従ってmongodbをインストールしました here 、インストール中にエラーはありませんが、このコマンドを使用してmongodサーバーを起動しようとするとSudo systemctl start mongodb
チュートリアルで言及されているように、このコマンドを使用して実行中かどうかを確認しようとすると、このエラーが発生しますSudo systemctl status mongodb
。
● mongodb.service - High-performance, schema-free document-oriented
database
Loaded: loaded (/etc/systemd/system/mongodb.service; enabled; vendor preset:
Active: failed (Result: exit-code) since Rab 2016-06-01 18:04:20 MYT; 4s ago
Process: 8241 ExecStart=/usr/bin/mongod --quiet --config /etc/mongod.conf (cod
Main PID: 8241 (code=exited, status=14)
Jun 01 18:04:20 yasinya systemd[1]: Started High-performance, schema-free docume
Jun 01 18:04:20 yasinya systemd[1]: mongodb.service: Main process exited, code=e
Jun 01 18:04:20 yasinya systemd[1]: mongodb.service: Unit entered failed state.
Jun 01 18:04:20 yasinya systemd[1]: mongodb.service: Failed with result 'exit-co
lines 1-10/10 (END)
だから誰もが何が間違っているのか、どうすれば修正できるのかを伝えることができます。
最近、私は同じ問題を解決しました。私はグーグルで解決策を見つけることができませんでしたが、手がかりを得ることができます。私の場合、この問題はmongodb-27017.sockファイルに関連していました。
Failed to unlink socket file /tmp/mongodb-27017.sock errno:1 Operation not permitted
そのため、/ tmp/mongodb-27017.sockファイルの権限をデフォルトのmongodb
ユーザーに変更しました。
Sudo chown mongodb /tmp/mongodb-27017.sock
Sudo chgrp mongodb /tmp/mongodb-27017.sock
この後 Sudo systemctl status mongodb
正常に動作し、mongodb
が開始されます。
同じ問題で立ち往生、ちょうど再起動
Sudo reboot
このエラーは、回復不能なエラー、キャッチされていない例外、またはキャッチされていないシグナルを検出したMongoDBアプリケーションによって返されます。システムは、クリーンシャットダウンを実行せずに終了します。
次のコマンドで問題を解決しました。
Sudo chown -R mongodb:mongodb /var/log/mongodb
Sudo chown -R mongodb:mongodb /var/lib/mongodb
Sudo chmod -R 755 /var/lib/mongodb
Sudo chmod -R 755 /var/log/mongodb
Sudo chown mongodb /tmp/mongodb-27017.sock
Sudo chgrp mongodb /tmp/mongodb-27017.sock
その後、サービスを再起動します
Sudo systemctl restart mongod
次に、mongodbサービスを確認します
Sudo systemctl status mongod
私は同じ使用をしました、
ただ解決する
Sudo reboot
最初に、mongoログを調べる必要があります。何がおかしいのかがわかるはずです。
$ tail -n 100 /var/log/mongodb/mongod.log
このコマンドは、ログファイルの最後の100行を表示し、正確な問題を示します。
たとえば、同じポート27017
を使用してmongo
インスタンスを実行していたため、私のものは機能していませんでした。別のインスタンスを実行すると、インスタンスの読み込みに失敗しました。
2018-05-11T19:03:49.102-0400 I CONTROL [initandlisten] MongoDB starting : pid=1247 port=27017 dbpath=/var/lib/mongodb 64-bit Host=dev-hyuen
2018-05-11T19:03:49.103-0400 I CONTROL [initandlisten] db version v3.2.20
2018-05-11T19:03:49.103-0400 I CONTROL [initandlisten] git version: a7a144f40b70bfe290906eb33ff2714933544af8
2018-05-11T19:03:49.103-0400 I CONTROL [initandlisten] OpenSSL version: OpenSSL 1.0.2g 1 Mar 2016
2018-05-11T19:03:49.103-0400 I CONTROL [initandlisten] allocator: tcmalloc
2018-05-11T19:03:49.103-0400 I CONTROL [initandlisten] modules: none
2018-05-11T19:03:49.103-0400 I CONTROL [initandlisten] build environment:
2018-05-11T19:03:49.103-0400 I CONTROL [initandlisten] distmod: ubuntu1604
2018-05-11T19:03:49.103-0400 I CONTROL [initandlisten] distarch: x86_64
2018-05-11T19:03:49.103-0400 I CONTROL [initandlisten] target_Arch: x86_64
2018-05-11T19:03:49.103-0400 I CONTROL [initandlisten] options: { config: "/etc/mongod.conf", net: { bindIp: "127.0.0.1", port: 27017 }, storage: { dbPath: "/var/lib/mongodb", journal: { enabled: true } }, systemLog: { destination: "file", logAppend: true, path: "/var/log/mongodb/mongod.log", quiet: true } }
2018-05-11T19:03:49.124-0400 E NETWORK [initandlisten] listen(): bind() failed errno:98 Address already in use for socket: 127.0.0.1:27017
2018-05-11T19:03:49.124-0400 E NETWORK [initandlisten] addr already in use
2018-05-11T19:03:49.124-0400 E STORAGE [initandlisten] Failed to set up sockets during startup.
2018-05-11T19:03:49.124-0400 I CONTROL [initandlisten] dbexit: rc: 48
ステップ1。 Sudo systemctl stop mongodb
ステップ2。 Sudo systemctl start mongod
ステップ3。 Sudo systemctl status mongod
あなたのお役に立てばと思います
私の場合、mongoは27017を使用できませんでした。27017ポートを使用しているものをすべて停止し、mongoを再起動する必要がありました。
しばらくグーグルで回りました。これは、/ var/lib/mongodbおよび/tmp/mongodb-27017.lockの許可設定が間違っているためです。所有者をmonogdbユーザーに変更する必要があります
chown -R mongodb:mongodb /var/lib/mongodb
chown mongodb:mongodb /tmp/mongodb-27017.sock
私の場合、システムはmongod.serviceを見つけることができませんでした次のコマンドを実行すると修正されます
Sudo systemct1 enable mongod
次に、データベースを再起動します
Sudo service mongod restart
この問題は、/dev/root/
(私のものでした)。
確認する df -h
と十分な空き領域があるかどうかを確認します。そうでない場合は、説明 there のように、ログファイルを別のディスクに移動してスペースを解放してください。
Sudo /etc/init.d/rsyslog stop
Sudo mv /var/log /OTHERDISK/
Sudo ln -s /OTHERDISK/log /var/log
Sudo /etc/init.d/rsyslog start
助けてくれるといいな