【轉自百度空間】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