linux系統(tǒng)下MYSQL備份恢復
數(shù)據(jù)庫備份是非常重要的。如果定期做好備份,這樣就可以在發(fā)生系統(tǒng)崩潰時恢復數(shù)據(jù)到最后一次正常的狀態(tài),把損失減小到最少。
一、 用命令實現(xiàn)備份
MySQLl提供了一個mysqldump命令,我們可以用它進行數(shù)據(jù)備份,下面假設(shè)要備份tm這個數(shù)據(jù)庫:
#mysqldump -u root -p tm > tm_050519.sql
按提示輸入密碼,這就把tm數(shù)據(jù)庫所有的表結(jié)構(gòu)和數(shù)據(jù)備份到tm_050519.sql了,因為要總進行備份工作,如果數(shù)據(jù)量大會占用很大空間,這時可以利用gzip壓縮數(shù)據(jù),命令如下:
#mysqldump -u root -p tm | gzip > tm_050519.sql.gz
系統(tǒng)崩潰,重建系統(tǒng)時,可以這樣恢復數(shù)據(jù):
#mysql -u root -p tm < tm_050519.sql
從壓縮文件直接恢復:
#gzip < tm_050519.sql.gz | mysql -u root -p tm
當然,有很多MySQL工具提供更直觀的備份恢復功能,比如用phpMyAdmin就很方便。但我認為,mysqldump是最基本、最通用的。
二、利用crontab,系統(tǒng)每天定時備份mysql數(shù)據(jù)庫
【內(nèi)容提要】利用系統(tǒng)crontab來定時執(zhí)行備份文件,按日期對備份結(jié)果進行保存,達到備份的目的。
利用系統(tǒng)crontab來定時執(zhí)行備份文件,按日期對備份結(jié)果進行保存,達到備份的目的。
1、創(chuàng)建保存?zhèn)浞菸募穆窂?mysqldata
#mkdir /mysqldata
2、創(chuàng)建/usr/sbin/bakmysql文件
#vi /usr/sbin/bakmysql
輸入
rq=` date +%Y%m%d `
tar zcvf /mysqldata/mysql$rq.tar.gz /var/lib/mysql
或者寫成
rq=` date +%Y%m%d `
mysqldump --all-databases -u root -p密碼 > /mysqldata/mysql$rq.sql
/var/lib/mysql是你數(shù)據(jù)庫文件的目錄,部分用戶是/usr/local/mysql/data,每個人可能不同
/mysqldata/表示保存?zhèn)浞菸募哪夸洠@個每個人也可以根據(jù)自己的要求來做。
3、修改文件屬性,使其可執(zhí)行
# chmod +x /usr/sbin/bakmysql
4、修改/etc/crontab
#vi /etc/crontab
在下面添加
01 3 * * * root /usr/sbin/bakmysql
表示每天3點鐘執(zhí)行備份
5、重新啟動crond
# /etc/rc.d/init.d/crond restart
完成。
這樣每天你在/mysqldata可以看到這樣的文件
mysql20040619.tar.gz
你直接下載就可以了。
cd /usr/local/mysql/bin/
mysqldump -u用戶名 -p密碼 --databases 庫名 >/backdata/ddd07-11-15.sql
恢復語法
mysqladmin create target_db_name
mysql target_db_name < backup-file.sql
即 mysql 庫名 < 文件名
完成,注意,-u后面沒有空格, 你只需要把上面的中文換成你的相關(guān)信息就可以了!
【編輯推薦】