2014-02-27 56 views
1

我在OS X上有一個過時的版本(1.8.2)mongodb,我不能爲我的生活弄清楚如何擺脫它。它在幾年前安裝,我認爲與自制。使用brew update && brew upgrade mongo升級它讓我蒙戈客戶端的最新版本(2.4.9),但是當我打開客戶端並運行如何在OS X上卸載過時的mongodb版本?

use admin 
db.runCommand({buildInfo:1}) 

我得到

{ 
    ... 
    "version" : "1.8.2", 
    ... 
} 

當我問

which mongo 

我得到

/usr/local/bin/mongo 

這是一個符號鏈接(如預期),以

/usr/local/Cellar/mongodb/2.4.9/bin/mongo 

/usr/local/opt/mongodb 

表現爲正常符號鏈接到

/usr/local/Cellar/mongodb 

展望/usr/local/Cellar/mongodb,我發現了兩個過時的版本(之一他們1.8.2),並移動他們兩個看看會發生什麼。答案是什麼。 Mongo Client仍然啓動並報告客戶端版本爲2.4.9,但db.runCommand({buildInfo:1})仍然報告1.8.2。我已經通過自制軟件卸載並重新安裝,但只是不知道罪魁禍首在哪裏。任何幫助將不勝感激。

回答

1

感謝您的意見,你們。答案原來是mongod的一個特別固執的版本。它被設置爲使用launchctl在系統啓動時啓動,因此即使重新啓動我的計算機,它仍然存在。我刪除它從launchctl爲this rather old post建議,然後通過運行從蒙戈外殼下面停的mongod:

> use admin 
> db.shutdownServer() 

之後,我複製的自制蒙戈plist文件從/usr/local/Cellar/mongodb/2.4.9/homebrew.mxcl.mongodb.plist/Library/LaunchDaemons

$ sudo launchctl load /Library/LaunchDaemons/homebrew.mxcl.mongodb.plist 

重新啓動機器,似乎都運行良好2.4.9。

4

根據您正在運行的MongoDB在OS X,這裏其實是我的假設:

  1. 這不是一個生產系統
  2. 這是一個沙箱,用於developand /或學習MongoDB的。
  3. 你是OK失去所有你目前擁有的數據在這個MongoDB實例

如果我所有的3個假設是真的,你可以去和手動刪除所有MongoDB的可執行文件。他們應該都可能在同一個目錄中。將該目錄移至垃圾桶,以及dbpath和日誌路徑的內容。

運行getCmdLineOpts命令,在蒙戈外殼將幫助您確定兩個DBPATH和日誌路徑 http://docs.mongodb.org/manual/reference/command/getCmdLineOpts/

此鏈接按指示重新安裝的MongoDB: http://docs.mongodb.org/manual/tutorial/install-mongodb-on-os-x/

請讓我知道,如果你有任何問題。

+0

getCmdLineOpts在工具箱中看起來像是一件有用的事情,雖然答案原來是mongod的一個固定實例。我停止了它,從launchctl中卸載它,從/ Library/LaunchAgents中移除它,然後重新啓動它,現在一切都很順利。 – Ben

1

它是brew update然後brew upgrade mongodb而不是brew update mongo

+0

謝謝。這並不是答案,但你能告訴我這兩個軟件包有什麼不同嗎? – Ben

+0

我認爲這真的歸結爲你用來安裝它的人。看到這個問題後,我實際上升級了我的。我試過mongo,它沒有工作,然後嘗試mongodb,它的工作。 – lciamp

0

如果您安裝了舊版本,這是一個好主意,檢查使用ls /usr/local/Cellar

我有一個名爲mongodb26因爲我已經手動選擇了與MongoDB的2.6的工作文件夾下的安裝文件夾。在這種情況下,只是做brew uninstall mongodb將無法​​正常工作。我不得不做brew uninstall mongodb26。只是要知道一件好事。