對mysql數據庫進行定時備份在windows下我們可以使用mysqldump與xcopy來加計劃任務來自動備份,而linux中我們可以使用crontab+mysqldump來定時備份數據庫.
先來看windows中定時備份方法
方法一,mysqldump備份數據庫
新建一個文件,如 mysqldump.bat,將下面代碼寫入文件mysqldump.bat:
- @echo off
- set file_dir=d:/a
- rem 備份文件所在的目錄
- set file_name=%date:~0,10%-%time:~0,2%-%time:~3,2%-%time:~6,2%
- rem 備份文件名
- C:/mysql/bin/mysqldump.exe -u root -p123456 databasename> %file_dir%/%file_name%.sql
- rem C:/mysql/bin/mysqldump.exe為mysqldump程序所在地址,root為用戶名,123456為密碼,
- databasename為待備份的數據庫名
然后將mysqldump.bat加入到任務計劃中即可,設置每天指定時間來運行即可,“屬性”=》“高級”中,還可以設置“重復任務”.
方法二,xcopy直接復制文件夾
1、復制date文件夾備份
假想環境:MySQL安裝位置:C:/MySQL,論壇數據庫名稱為:bbs,數據庫備份目的地:C:/db_bak/,新建db_bak.bat,寫入以下代碼:
- *******************************Code Start*****************************
- net stop mysql
- xcopy c:/mysql/data/bbs/*.* c:/db_bak/bbs/%date:~0,10%/ /S /I
- net start mysql
- *******************************Code End *****************************
linux中定時備份方法
利用Linux的定時計劃功能(Cron)和MySQL的導出功能(mysqldump),編輯 /etc/crontab,代碼如下:
vim /etc/crontab
按順序加入如下兩個語句,帶了注釋,代碼如下:
- # remove all old backup files less than 29 days
- 10 2 1 * * root find /mnt/database/ -name '*.sql.gz' -type f -mtime -29 -mtime +7 -exec rm -f {} ; //Vevb.com
- # automatically backup mysql every day
- 15 2 * * * root mysqldump -u root -pPASSWORD --all-databases | gzip > /mnt/database/`date +'/%Y-/%m-/%d'`.sql.gz
cron中任務計劃的格式為:
# m h dom mon dow user command
即:
第一個數字表示分(minute);
第二個數字表示時(hour);
第三個數字表示天(day of month);
第四個數字表示月(month);
第五個數字表示分(day of week);
以上數字為*時表示不限,接下來是執行命令的用戶和命令內容.
新聞熱點
疑難解答