2012-03-31 85 views
30

我似乎無法連接到我的本地計算機上作爲Windows服務安裝的Mongo DB。我還構建了一個與MongoDB通信的小WPF應用程序。 的errormessage的:如何修復我的mongodb?

錯誤:無法連接到服務器127.0.0.1殼/ mongo.js:8 例外:連接失敗檢測 不正常關機。

+1

我做了相同的應用程序架構:WPF應用程序和MongoDB爲「本地數據庫」和我的結論是因爲這個問題MongoDB是不適合這種應用,但僅限於高可靠的服務器端平臺。否則你會經常被這個問題訪問。最好去替代LiteDb或Mini-Biggy。 – 2017-11-28 04:03:14

回答

89

您應該用--repair標誌啓動它。

mongod --repair 

修復完成後,停止此項並正常啓動。 Documentation on --repair option

+1

我通過閱讀手冊瞭解了它。 – marko 2012-03-31 07:04:36

+37

閱讀是好:) – 2012-03-31 07:55:11

+1

如果修復失敗,並且mongod響應一個損壞的數據文件的異常,請刪除mongd.lock文件以及損壞的mongo數據文件並再次運行mongod --repair。這種方法顯然會丟失數據,但至少您可以再次啓動mongod。 – chromaloop 2016-10-21 17:39:29

11

更快:

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

它幫助,謝謝! – Saani 2015-10-16 06:26:29

+1

謝謝!在--repair標誌中使用--dbpath選項對我有用。我遇到了與「不潔的關閉」(不管那意味着什麼)相同的問題,並且當我嘗試修復時,出現錯誤,指出未找到默認的「\ data \ db」目錄。這是預期的,因爲我正在使用一個單獨的位置來存儲我的日誌和數據。我只是將--dbpath設置爲我的自定義位置並工作。我還沒有確認,但我的猜測是,我可以使用帶--repair標誌的--config「mongodb \ mongod.cfg」來讓MongoDB使用我的自定義設置。奇怪的是,它不是從修復文件中讀取的。 – 2016-05-16 23:48:24

+0

它的工作原理..謝謝+1 – 2016-06-17 12:28:25

9

如果你做修復手術以root用戶的肯定之後,將所有數據庫文件是由MongoDB的用戶所擁有,否則MongoDB的將無法啓動

chown -R mongodb:mongodb /data/db 
rm /data/db/mongod.lock 
/etc/init.d/mongodb start