◆ベビームーワァをクリックするとジャンプするよ!

【Ubuntu】MongoDBのエラーでアプリが動かない場合

こんにちわ!
パンジェンシーです。

f:id:x-fieldatts:20150502134035p:plain


前回は、MEANスタックを使って、ログイン機能を実装しました。

mower.hateblo.jp


さて、色々実験していると、MongoDBに急にアクセスできなくなったりすることがあると思います。

サービスを正常に停止せずに、例えばOSを電源長押しで強制終了した場合などに、データベースが壊れてしまう場合があります。


今回は、そういう時の修復方法です。

必ずこれで治る保証はないですが、わたくしは今のところ何とかなっています。

環境

  • Ubuntu 14.04 LTS 64bit
  • MongoDB 2.4.9

修復方法

  • ロックの解除
  • データベースの修復
  • サービスの再起動

ロックの解除

まず、データベースにロックがかかっているので、それを解除します。

$ cd /var/lib/mongodb

特にDBの場所を指定せずに使っている場合は、上の場所にデータがあると思います。

違う場所を指定している場合は、そこに置き換えてください。


ここに、mongod.lockというファイルがあると思うので、それを削除します。

$ sudo rm -f mongod.lock

データベースの修復

次に、repairオプションを使ってデータベースを修復します。

$ mongod --repair

サービスの再起動

最後にMondoDBのサービスを再起動します。

$ sudo service mongodb start


mongoと打って、mongoシェルが立ち上がるようになればOKです。

まとめ

MongoDBのサービスを起動している場合は、強制終了しないように注意しましょう…。


以上。

広告を非表示にする