2013-07-25 93 views
7

也許我對mongodump應該如何工作有一個完全的誤解,但我似乎無法讓它做任何事情,除了返回JavaScript execution failed: SyntaxError: Unexpected identifier錯誤。Mongodb的「mongodump」命令,javascript執行錯誤

下面是我在做什麼:

  • 的mongod運行
  • 我想備份一個名爲「mydb的」
  • 我蒙戈外殼
  • 我試着命令內部數據庫mongodump --db mydb並獲得上述錯誤
  • 我試過mongodumpmongoexport,兩者都有相同的問題

我在這裏做錯了什麼?

回答

19

嘗試使用以下它將work

i.Open終端

II。輸入mongodump --collection collectionname --db dbname(不要進入mongo shell);

iii.If默認端口是不同的(大於27017除外),然後去下面的命令

mongodump --host mongodb1.example.net --port 37017 --username user --password pass --out /opt/backup/mongodump-2011-10-24 
+2

啊,沒有意識到你打算從mongoDb以外做到這一點。有道理,讓它工作! – Jascination

+0

您可以將端口添加到主機並使用'-o'輸出: 'mongodump --host mongodb1.example.net:37017 -o/opt/backup/mongodump-2011-10-24' –

4

mongodump,mongorestore不是mongodb的殼的命令。它是獨立的mongodb實用程序。你可以在mongodb bin文件夾下找到它。

通常你需要將所有的MongoDB公用事業從任何地方在命令行或終端添加到系統路徑變量,這個簡單的備份後/恢復數據庫。

如果您的數據庫位於默認端口(27017)上,您的命令看起來很不錯(mongodump --db mydb)。

3

我在採取mongo轉儲時遇到了問題,我也想將轉儲存儲到S3。最後,我以bash script結束了mongo轉儲並將其存儲到S3。我用mongodump進行備份。

mongodump -h $MONGO_HOST:$MONGO_PORT -d $MONGO_DATABASE 

$MONGO_HOST$MONGO_PORT$MONGO_DATABASEhost,分別portdatabase-name bash的變量。 如果您在數據庫上設置了用戶名和密碼,您還可以使用--username user --password pass選項來執行mongodump命令。 Here是腳本採取mongodb轉儲並將其存儲到S3與cron。