一般情況我們通過mysqldump來備份MySQL資料庫,並上傳至其它備份機器。如果資料庫比較大,在備份傳輸的時候可能會慢,所以我們盡量讓備份的檔案小一些。
在寫自動備份指令碼時,最好把備份結果直接壓縮,恢複時也可以直接由壓縮備份恢複。下面介紹如何使用bzip2和gzip進行壓縮mysql備份檔案。
備份並用bzip壓縮:
| 代碼如下 |
複製代碼 |
mysqldump | bzip2 > outputfile.sql.bz2 |
從bzip2備份恢複:
| 代碼如下 |
複製代碼 |
bunzip2 < outputfile.sql.bz2 | mysql < mysql options> |
備份並用gzip壓縮:
| 代碼如下 |
複製代碼 |
mysqldump | gzip > outputfile.sql.gz |
從gzip備份恢複:
gunzip < outputfile.sql.gz | mysql < mysql options>
補充本文章
備份指定資料庫
| 代碼如下 |
複製代碼 |
mysqldump -h hostname -u username -p databasename > db.sql不明確指定路徑的話被分到使用者工作目錄:C:Documents and SettingsAdministrator |
可以明確指定備份目錄:
| 代碼如下 |
複製代碼 |
| mysqldump -u root -p mydb -h 192.168.14.204 > D:mydb.sql |
說明:
-p之後不用輸入密碼,點擊斷行符號鍵之後才需要輸入密碼。
直接將MySQL資料庫壓縮備份
| 代碼如下 |
複製代碼 |
| mysqldump -h hostname -u username -p databasename | gzip > db.sql.gz |
說明:
gzip是linux下的壓縮公用程式,所以在windows環境下無法使用。
備份MySQL資料庫某個(些)表
| 代碼如下 |
複製代碼 |
| mysqldump -h hostname -u username -p databasename table1 table2 > db.sql |
同時備份多個MySQL資料庫
| 代碼如下 |
複製代碼 |
| mysqldump -h hostname -u username -p –databases db1 db2 db3 > dbs.sql |
備份伺服器上所有資料庫
| 代碼如下 |
複製代碼 |
| mysqldump --all-databases > allbackupfile.sql |
測試:
| 代碼如下 |
複製代碼 |
mysqldump --all-databases -u root -p > allbackupfile.sql
|
Enter password: ******windows下可以使用Mysql Query Browser的File–》Open Script來執行備份的指令碼,同時也可以使用一下命令直接進行恢複:
| 代碼如下 |
複製代碼 |
mysql -h hostname -u username -p databasename < backupfile.sql |