2016-01-18 26 views
0

我下載了一個mongoDB數據庫,這意味着我有一組XXX.0 [xxx.1,...]和XXX.ns文件。我使用Homebrew安裝了mongoDB(在Mac OS X上)並運行了mongod,dbpath參數指向一個包含這些文件的目錄。但是,當我使用mongo shell並要求查看可用數據庫或集合時,除了「本地」數據庫和沒有集合外,我什麼也得不到。我究竟做錯了什麼?我如何讓mongoDB在目錄中「查看」數據庫?感謝, Yariv。如何將mongodb連接到現有的一組數據庫文件

回答

1

根據您下載的數據庫文件命名,使用MongoDB MMAPv1 storage engine生成文件。就好像它是使用MongoDB WiredTiger storage engine生成的那樣,您將擁有collection.*.wt文件。

現在,如果您剛剛通過自制軟件安裝了最新的穩定版本的MongoDB,它目前是v3.2。這將與new default storage engine of WiredTiger一起出現。

如果你也有在該目錄中local.<n>local.ns文件,MongoDB的會給你一個錯誤,說明存儲文件不兼容象下面這樣:

[initandlisten] exception in initAndListen: 28662 Cannot start server. Detected data files in /data/target created by the 'wiredTiger' storage engine, but the specified storage engine was 'mmapv1'., terminating 

沒有這些文件mongod將WiredTiger存儲引擎運行,並會忽略現有的(複製的)MMAPv1文件。

如果這是你的情況,你可以運行mongod--storageEngine選項來指定MMAPv1。這將設置mongod與MMAPv1存儲引擎一起運行。例如:

mongod --dbpath <your db files dir> --storageEngine=mmapv1 

而且備案,結賬mongodumpmongorestore導出/導入,而不是複製數據庫文件的二進制格式的數據庫內容。

+1

謝謝!事實證明,當我使用默認存儲引擎(WiredTiger)運行mongod時,會自動創建多個WiredTiger文件。因此,在運行--storageEngine = mmapv1開關時出現錯誤。但在刪除除了。之外的所有文件後。 和.ns之一,並與開關運行,它的工作很好。 –

相關問題