【Ubuntu】MongoDBのエラーでアプリが動かない場合
こんにちわ!
パンジェンシーです。
前回は、MEANスタックを使って、ログイン機能を実装しました。
さて、色々実験していると、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のサービスを起動している場合は、強制終了しないように注意しましょう…。
以上。