パンジェンシーの「汗だく開発日誌」

システム開発の備忘録です。

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

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

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

 

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

 

pangency.hatenablog.com

 

さて、色々実験していると、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のサービスを起動している場合は、強制終了しないように注意しましょう…。


以上。