MongoDBが起動できない解決方法

2520 ワード

MongoDBが起動できない解決方法
Posted 2012-11-22 by Perchouli
MongoDBが突然起動できなくなった場合、最初の反応はmongodeを削除することです.lock.このファイルはMongoDBのデータベースディレクトリの下にあり、デフォルトは/data/dbです.これは最も一般的な問題で、MongoDBが正常に終了していないためです(kill-9に殺されたり、他の意外な状況で中断されたりします).
他にもMongoDBが起動できない場合があります.本明細書で説明する起動不能とは、/etc/initを使用することを意味する.d/mongodb startまたはsudoサービスmongdb startは、mongodb start/runningをプロンプトしますが、statusを表示するとstop/waitingです.
ServiceSERVERNAME statusが誤報する可能性があり、まずMongoDBの実態を確認します.主にps axu|grep mongodは関連プロセスがあるかどうかを確認し、linksを開くか、ブラウザで直接127.0.0.1:28017にアクセスし、MongoDBの情報説明が起動していないのが見えない.次に、
$ sudo mongod –repair –config/etc/mongodb.conf
$ sudo mongod –config/etc/mongodb.conf
1番目のコマンドは修復操作で、2番目のコマンドは手動でMongoDBのプロファイルを指定し、端末で直接実行することで、エラーを出力するときに直感的で、ログをめくる必要はありません.mongodをスムーズに実行できる場合は、プロファイルとデータベースに問題がないことを示します./usr/bin/mongodb権限が足りない場合は、本明細書の末尾setcapメソッドを参照してください.
実行できない場合は、エラーメッセージが表示されます.プロファイルエラー、データディレクトリ設定エラー、/usr/bin/mongodファイルエラーの3つに分けられます.
プロファイルエラーが顕著で、パラメータエラーがerror command line:unknown option xxxに明確に表示されます.2番目のコマンドで使用するプロファイルを明確に指定しても、間違えやすいです.そのため、以前にMongoDBホストがプロファイルの変更から一度壊したことがあるほか、プロファイルの問題に遭遇することはめったにありません.
次に、データ・ディレクトリです.主に権限の問題です.エラーが発生する可能性があります.
Thu 22 11 10:03:30 [initandlisten] warning couldn’t write to/rename file/srv/mongodb/journal/prealloc.0
Thu 22 11 10:03:30 [initandlisten] couldn’t open/srv/mongodb/duoshuo.ns errno:1 Operation not permitted
Thu 22 11 10:03:30 [initandlisten] error couldn’t open file/srv/mongodb/duoshuo.ns terminating
データディレクトリのownerはmongodb:mongodbであるべきです.
$ sudo chown mongodb:mongodb mongodb
$ sudo vi/etc/passwd
最後のケースは/usr/bin/mongodの問題です.そのエラーはディレクトリに読み書き権限がないのと同じですが、MongoDBのデータベースディレクトリを777に設定しても問題があります.mongodはO_NOATIMEフラグはファイルシステムにアクセスします.mongodbにはこの権限がありません.setcapで設定します.
# setcap cap_fowner+ep/usr/bin/mongod
もう1つは端末環境設定の問題です
mongod-f****.confが起動すると、エラーが発生する可能性があります.
terminate() called, printing stack (if implemented for platform):

解決方法:現在のコマンドラインexportの変数を見てみましょう.
export LC_ALL="C"

それでもだめなら...あのapt-get purgeをアンインストールして再ロードしましょう.