2011-12-09 17 views

回答

64

Mysqldump

#mysqldump --host=the.remotedatabase.com -u yourusername -p yourdatabasename > /User/backups/adump.sql 
45

試試吧你有訪問SSH?

可以在外殼使用這個命令來備份整個數據庫:

mysqldump -u [username] -p[password] [databasename] > [filename.sql] 

其實,這是一個命令,隨後的>運營商,它說,「拿上一個命令的輸出,並將其存儲在這個文件。」

注意:缺少-p和mysql密碼之間的空格不是拼寫錯誤。但是,如果您保留-p標誌,但實際密碼爲空,則系統會提示您輸入密碼。有時候建議將密碼保存在您的bash歷史記錄中。

+6

man mysql:如果您使用短選項表單(-p),您**不能* *在選項和密碼之間有**空格**。 –

+1

好的解釋-p和實際密碼之間的「無空間」 –

+0

如果您使用SSH,您應該提及SCP或SFTP的使用情況,將問題 – imakin

31

沒有人提到關於的任何事情 - 單一交易選項。人們應該默認使用InnoDB表來確保數據的一致性。在這種情況下:

mysqldump --single-transaction -h [remoteserver.com] -u [username] -p [password] [yourdatabase] > [dump_file.sql] 

這可以確保轉儲在這與其他人隔離,防止局部事務的備份單個事務中運行。

例如,假設您有一個遊戲服務器,人們可以在其中使用他們的賬戶信用購買齒輪。基本上有2個操作對數據庫:

  1. 從他們的銀行存款扣除額
  2. 添加齒輪他們的武器庫現在

如果轉儲發生在這些操作之間,下一次你恢復備份將導致用戶丟失購買的項目,因爲第二個操作不會轉儲到SQL轉儲文件中。

雖然它只是一個選項,但基本上沒有太多的理由說明爲什麼不在mysqldump中使用此選項。

+0

中提供的轉儲文件存儲在本地PC中可能是救生員,感謝一羣! –

+0

好加! –

18

本主題顯示在我的谷歌搜索結果的第一頁上,所以這裏有一些對新手來說有用的提示。

你也可以放棄SQL並在一行gzip壓縮它:

mysqldump -u [username] -p[password] [database_name] | gzip > [filename.sql.gz] 
2
mysqldump -h [domain name/ip] -u [username] -p[password] [databasename] > [filename.sql] 
+3

它真的是'-p [密碼]'而不是'-p [密碼]'? –

+3

@ ArtjomB。是的,如果你的密碼有特殊字符放在引號中:'-p'pa $$ w0rd !!!!'' –

-1

你可以選擇另一種方式:

mysql -u [username] [databasename] 

,並選擇喜歡你的SQL文件:

source mydumpdatabase.sql 
+0

這就是你如何恢復備份,而不是你如何創建一個備份。 – Quentin