2016-10-16 106 views
1

我想在網上託管我的數據庫,並根據我在網上找到的內容,我需要先使用mongodump導出我的數據庫。Mongodump沒有按預期工作

使用mongodump如果沒看錯的方法是:

Failed: error connecting to db server: no reachable servers 

我嘗試添加--host=127.0.0.1

mongodump -d <db-name> -o <directory> 

當我使用上面的命令,我在終端得到以下錯誤mongodump如下:

mongodump --host=127.0.0.1 -d <db-name> -o <directory> 

但我仍然得到相同的結果。我在這裏做錯了什麼?

更新:

我設法開始用下面的命令MongoDB的服務來克服錯誤:

brew services start mongodb 

當我運行mongodump現在,它似乎是工作,但我可以」當我導航到它應該位於的目錄時,找到它!

注:我使用流星技術,我訪問我的數據庫meteor mongo命令

+1

你能通過運行'mongo'連接到mongo shell嗎? – andresk

+0

@andresk否我不能,它顯示我「連接失敗」,我通常運行我的mongo使用「meteor mongo」,因爲我使用流星JS來建立我的項目 –

+0

@andresk我設法讓mongo運行,但不是mongodump,我會更新我的問題, –

回答

1

你可以嘗試:

運行mongodump --db <database> --port 3001從要創建的輸出文件的目錄(它將創建一個文件轉儲目錄)

的端口是3001,因爲它似乎流星不使用MongoDB的默認端口

另外,如果什麼都沒有出現,請嘗試使用-v標誌運行verbose mode,這將幫助您找出未創建文件的原因。另外,請確保您的數據庫名稱是正確的。

+0

謝謝,現在試一試 –

+0

它沒有工作,但我相信問題不在於你的解決方案,因爲我在控制檯中得到以下錯誤信息:「位置參數不允許:[流星]」,我相信原因是因爲我的數據庫名稱是「meteor」,這是我用來運行我的項目的命令。因此,我認爲問題可能是因爲數據庫名稱。 –

+0

我正在努力改變它,我會盡快更新你:)。謝謝 –

1

如果您正在從遠程服務器執行mongodump,則可能發生版本不兼容的情況。這會導致沒有任何警告文件被轉儲。 (至少從我的測試中,mongodump 2.6.10將無法​​從mongod 3.2.13轉儲)

此外,請確保bash特殊字符不會破壞您的查詢。

例子:

mongodump --db DB_name --collection colname --query "{$or: [something1, something]}" 

,因爲你需要躲避$\前面的查詢將無法工作。

mongodump --db DB_name --collection colname --query "{\$or: [something1, something]}"