2012-03-31 5 views
30

ローカルマシンにWindowsサービスとしてインストールしたMongo DBに接続できないようです。私はまた、MongoDBと通信する小さなWPFアプリケーションを構築しました。 にErrorMessage:私のmongodbを修復するには?

エラー:サーバ127.0.0.1シェル/ mongo.jsに接続できませんでした:8 例外:接続が検出された アンクリーンシャットダウンに失敗しました。

+1

http://docs.mongodb.org/manual/tutorial/recover-data-following-unexpected-shutdown/を参照してください。信頼性の高いサーバー側プラットフォームです。そうでなければ、あなたは頻繁にこの問題に遭遇します。 LiteDbやMini-Biggyのような代替品のほうがいい。 –

答えて

89

--repairフラグで起動する必要があります。

mongod --repair 

修復が完了したら、これを停止して正常に起動します。 Documentation on --repair option

+1

マニュアルを読むことで、わかりました。 – marko

+37

読み込みは良いです:) –

+1

修復が失敗し、mongodが破損したデータファイルの例外を返した場合は、破損したmongoデータファイルとともにmongd.lockファイルを削除し、mongod --repairを再度実行してください。あなたは明らかにこの方法でデータを失うでしょうが、少なくともあなたは再びmongodを開始することができます。 – chromaloop

11

クイッカー:

sudo rm /data/db/mongod.lock 
sudo mongod --dbpath /data/db --repair 
sudo mongod --dbpath /data/db 
+0

それは、ありがとう! – Saani

+1

ありがとう! - repairオプションで--dbpathオプションを使用すると、私のために働きました。私には "不潔なシャットダウン"(それが何であれ)と同じ問題がありました。修復しようとすると、デフォルトの "\ data \ db"ディレクトリが見つからないというエラーが表示されました。これは私のログとデータを保存するために別の場所を使用しているために期待されていました。私はちょうど私のカスタムロケーションに--dbpathを設定して作業しました。私は確認していませんが、私の推測では--config "mongodb \ mongod.cfg"を--repairフラグを使ってMongoDBのカスタム設定を使うことができるということです。奇妙なことに、そのファイルから修復を読み込んでいませんでした。 –

+0

それは働く..ありがとう+1 –

9

は、rootユーザーとして修復操作を行う場合はそうでない場合はMongoDBの

chown -R mongodb:mongodb /data/db 
rm /data/db/mongod.lock 
/etc/init.d/mongodb start 
2
$ mongo 
> use dbname 
> db.repairDatabase() 
を開始しません、その後すべてのdbファイルはMongoDBのユーザーによって所有されていることを確認してください

修復機能は、repairDatabaseコマンドのdb.repairDatabase()ヘルパーを使用してシェルでも使用できます。 「ローカルDB」としてWPFアプリとのMongoDBと私はだけ、非常ため、この問題のためのMongoDBは、この種のアプリケーションに適していないと結論:私は同じアプリのアーキテクチャをした

+0

最初の行はスクリプトの例を意図していますか?次に、4つのスペースをあらかじめ付けて、リストではなくコードとしてフォーマットします。 – Artemix

関連する問題