1. 程式人生 > >【轉自百度空間】mysql資料庫的壓縮備份與還原

【轉自百度空間】mysql資料庫的壓縮備份與還原

       使用mysql資料庫,經常會遇到資料庫的備份與還原這樣的需求,並且在這個過程遇到的問題是相當的豐富,比如磁碟空間不足、備份或還原過程中斷電等。本文就磁碟空間不足,或如何節省磁碟空間給出一個解決方案,壓縮備份檔案。

      通常情況下,我們會利用mysqldump命令將某庫(如db_name)中的資料匯出到一個檔案中,然後再利用gzip、zip等壓縮命令對這個檔案進行壓縮操作,但我們要求在利用mysqldump命令匯出資料的過程中,就對其進行壓縮。是的,如何在備份過程中壓縮備份檔案?這是本文要解決的問題之一。

結合mysqldump、管道符(|)、gzip或zip命令,命令列可以寫成:

1./usr/local/mysql/bin/mysqldump --quick --force db_name|gzip > /home/mysql/db_name.sql.gz

2./usr/local/mysql/bin/mysqldump --quick --force db_name|zip > /home/mysql/db_name.sql.zip

       管道符(|)的含義:把前一個命令的執行結果作為引數傳給後一個命令

       上面命令列的含義:把db_name庫要備份的內容作為引數傳給gzip或zip,gzip或zip把db_name庫的內容壓縮後,利用輸出重定向命令(>)寫入備份檔案

       當然壓縮命令不止gzip、zip兩種,上述1、2兩個命令列中的gzip或zip也可以換成其他壓縮命令,效果大同小異。有備份,就有還原,對,本文要解決的另一個問題是:如何還原壓縮的sql檔案到mysql資料庫?

這還需結合mysql、管道符(|)、gunzip或unzip命令,命令列可以寫成:

1.gunzip < /home/mysql/db_name.sql.gz |mysql --force db_name

2.gunzip -c /home/mysql/db_name.sql.gz |mysql --force db_name

3.gzip -d < /home/mysql/db_name.sql.gz |mysql --force db_name

4.unzip -c  /home/mysql/db_name.sql.zip |mysql --force db_name

5.gunzip -c /home/mysql/db_name.sql.zip |mysql --force db_name

資料庫匯入匯出:

資料庫匯入: 

c:\>MySQL -h localhost -u root -p mydb2 < e:\MySQL\mydb2.sql 

資料庫匯出:

c:\>mysqldump -h localhost -u root -p mydb mytable>e:\mysql\mytable.sql