Linux下MySQL數(shù)據(jù)庫定期備份和刪除的教程

2014-12-10 10:46:18來源:cnblogs作者:DebugMyself

網(wǎng)上已經(jīng)有部分關(guān)于Linux下定期備份mysql的方法,但是很多步驟不夠詳細,不適合新手,自己琢磨了很久,終于搞定了。

網(wǎng)上已經(jīng)有部分關(guān)于Linux下定期備份mysql的方法,但是很多步驟不夠詳細,不適合新手,自己琢磨了很久,終于搞定了。

1.Linux服務(wù)器一般是ssh協(xié)議,如果本地也是Linux環(huán)境,可以直接通過shell連接,命令:

ssh  -l  root  -p  8080  202.***.***.***
其中root為用戶名,一般為root,8080為端口,202.***.***.***為服務(wù)器ip地址;

接下來會提示你輸入密碼,輸入正確后即可進入服務(wù)器;

2.然后需要創(chuàng)建一個數(shù)據(jù)庫備份數(shù)據(jù)存放的文件夾;

mkdir /mysql/mysqldata_bakeup
/mysql/mysqldata_bakeup為創(chuàng)建的路徑,可以自定義;

3.創(chuàng)建并編輯文件在路徑 /usr/sbin/bakmysql,命令:

vi /usr/sbin/bakmysql
此時會在/usr/sbin/路徑下創(chuàng)建bakmysql文件,并進入bakmysql編輯狀態(tài),接著輸入;

fn = ` date +%Y%m%d `
    tar  zcvf  /mysql/mysqldata_bakeup/mysql$fn.tar.gz  /mysql/data

    mysqldump -u root -ppassword /mysql/data/yourdatabase > /mysql/mysqldata_bakeup/mysql$fn.sql

  find $fn -name "mysql*.tar.gz" -type f -mtime +7 -exec fm{}; > /dev/null 2>&1

  find $fn -name "mysql*.sql" -type f -mtime +7 -exec fm{}; > /dev/null 2>&1
/mysql/mysqldata_bakeup/為備份數(shù)據(jù)保存路徑,msql$fn.tar.gz為備份數(shù)據(jù)根據(jù)日期編號的名稱,/mysql/data為服務(wù)器數(shù)據(jù)庫的數(shù)據(jù)路徑,yourdatabase為你要備份的數(shù)據(jù)庫名;

注意其中第一句命令不是單引號,而是tab鍵上面的符號,且date前后需要有空格;

第二句命令有兩種方法,第一種直接備份并壓縮數(shù)據(jù)庫數(shù)據(jù)源文件,第二種是利用mysql自帶命令mysqldump導(dǎo)出數(shù)據(jù)庫yourdatabase的sql文件;

第三句是刪除7天前的備份文件,文件名寫法對應(yīng)第二句。

4.修改文件bakmysql屬性,使其可執(zhí)行;

chmod +x /usr/sbin/bakmysql
5.修改/etc/crontab:

vi /etc/crontab
進入編輯狀態(tài),在最下面添加:

01 3 * * * root /usr/sbin/bakmysql
01 3 是每天凌晨3:01執(zhí)行 bakmysql文件;

6.關(guān)于重啟有時候并不需要,如果服務(wù)器在/etc/rc.d/init.d/路徑下有crond服務(wù),可以選擇重啟crond,命令:

/etc/rc.d/init.d/crond restart
7.最后退出服務(wù)器命令:exit

關(guān)鍵詞:MySQL