linux下MYSQL備份與恢復


 

 

1.用命令實現備份

 

數據庫備份是很重要的。如果定期做好備份,這樣就可以在發生系統崩潰時恢復數據到最后一次正常的狀態,把損失減小到最少。MySQLl提供了一個mysqldump命令,我們可以用它進行數據備份,下面假設要備份tm這個數據庫:

 

#mysqldump -u root -p tm > tm_050519.sql

 

按提示輸入密碼,這就把tm數據庫所有的表結構和數據備份到tm_050519.sql了,因為要總進行備份工作,如果數據量大會占用很大空間,這時可以利用gzip壓縮數據,命令如下:

 

#mysqldump -u root -p tm | gzip > tm_050519.sql.gz

 

系統崩潰,重建系統時,可以這樣恢復數據:

 

#mysql -u root -p tm < tm_050519.sql

 

從壓縮文件直接恢復:

 

#gzip < tm_050519.sql.gz | mysql -u root -p tm

 

當然,有很多MySQL工具提供更直觀的備份恢復功能,比如用phpMyAdmin就很方便。但我認為,mysqldump是最基本、最通用的。

2.利用crontab,系統每天定時備份mysql數據庫

【內容提要】利用系統crontab來定時執行備份文件,按日期對備份結果進行保存,達到備份的目的。

利用系統crontab來定時執行備份文件,按日期對備份結果進行保存,達到備份的目的。

1、創建保存備份文件的路徑/mysqldata

#mkdir /mysqldata

2、創建/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是你數據庫文件的目錄,部分用戶是/usr/local/mysql/data,每個人可能不同

/mysqldata/表示保存備份文件的目錄,這個每個人也可以根據自己的要求來做。

3、修改文件屬性,使其可執行

# chmod +x /usr/sbin/bakmysql

4、修改/etc/crontab

#vi /etc/crontab

在下面添加

01 3 * * * root /usr/sbin/bakmysql

表示每天3點鍾執行備份

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 庫名 < 文件名

OK,注意,-u后面沒有空格, 你只需要把上面的中文換成你的相關信息就可以了!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM