方法一
具體代碼
備份
| 代碼如下 |
複製代碼 |
@echo off & setlocal ENABLEEXTENSIONS :: ---------- 配置項 ---------- :: 備份放置的路徑,加 set BACKUP_PATH=D:Backup :: 要備份的資料庫名稱,多個用空格分隔 set DATABASES=database1 database2 database3 :: MySQL 使用者名稱 set USERNAME=root :: MySQL 密碼 set PASSWORD=123456 :: MySQL Bin 目錄,加 :: 如果可以直接使用 mysqldump(安裝時添加 MySQL Bin 目錄到了環境變數),此處留空即可 set MYSQL=D:SERVERMySQLbin :: WinRAR 內建命令列工具的可執行檔路徑,長檔名注意用 Dos 長檔名書寫方式 set WINRAR=C:Progra~1WinRARRar.exe :: ---------- 以下請勿修改 ---------- set YEAR=%date:~0,4% set MONTH=%date:~5,2% set DAY=%date:~8,2% :: 如果在 dos 下輸入 time 返回的不是 24 小時制(沒有 0 填充),請自行修改此處 set HOUR=%time:~0,2% set MINUTE=%time:~3,2% set SECOND=%time:~6,2% set DIR=%BACKUP_PATH%%YEAR%%MONTH%%DAY% set ADDON=%YEAR%%MONTH%%DAY%%HOUR%%MINUTE%%SECOND% :: create dir if not exist %DIR% ( mkdir %DIR% 2>nul ) if not exist %DIR% ( echo Backup path: %DIR% not exists, create dir failed. goto exit ) cd /d %DIR% :: backup echo Start dump databases... for %%D in (%DATABASES%) do ( echo Dumping database %%D ... %MYSQL%mysqldump -u%USERNAME% -p%PASSWORD% %%D > %%D.%ADDON%.sql 2>nul :: winrar if exist %WINRAR% ( %WINRAR% a -k -r -s -m1 -ep1 %%D.%ADDON%.rar %%D.%ADDON%.sql 2>nul del /F /S /Q %%D.%ADDON%.sql 2>nul ) ) echo Done :exit |
增加計劃任務
| 代碼如下 |
複製代碼 |
@echo off :: ------- 配置項 ------- :: 要執行的檔案名稱 set FILE=D:croncron_backup.bat :: 計劃頻率類型 set FREQUENCY=DAILY :: 頻率,與上面的計劃頻率類型對應 set MODIFIER=1 :: 該計劃執行的時間(24 小時制) set DATETIME=00:30:00 :: 計劃的名字 set NAME="Backup Cron Job" :: 計劃執行使用者,不建議修改 set USER="System" :: ------- 以下請勿修改 ------- schtasks /Create /RU %USER% /SC %FREQUENCY% /MO %MODIFIER% /ST %DATETIME% /TN %NAME% /TR %FILE% pause |
方法二
下面我們個更簡單快捷的方法
建一個記事本,然後重新命名為: mysql_backup.bat 然後單擊右鍵選擇編輯,把下面的部分粘貼進來然後修改儲存,比如我要備份taobao這個資料庫,指令碼如下:
| 代碼如下 |
複製代碼 |
net stop mysql xcopy D:mysqldatataobao*.* D:db_backup%date:~0,10% /y net start mysql |
上面的D盤和db_backup等目錄大家都可以自行修改,指令碼的意思就是複製taobao 這個目錄到D盤的db_backup這個目錄裡面的以當天為名稱的目錄裡面,比如: d:backup2010-05-23 ,請大家注意,網上很多人轉載的說以%date:~4,10%這個來作為當天目錄是錯誤的。
然後建立一個計劃任務,把mysql_backup.bat加入進去,設定為每天淩晨幾點運行下就行了,此部分不再詳述,
方法三
假想環境:
MySQL 安裝位置:C:MySQL
論壇資料庫名稱為:bbs
Database Backup目的地:C:db_bak
============================
建立db_bak.bat,寫入以下代碼
| 代碼如下 |
複製代碼 |
net stop mysql xcopy c:mysqldatabbs*.* c:db_bakbbs%date:~0,3% /y net start mysql |
然後使用Windows的“計劃任務”定時執行該批處理指令碼即可。(例如:每天淩晨3點執行back_db.bat)
解釋:備份和恢複的操作都比較簡單,完整性比較高,控製備份周期比較靈活,例如,儲存一周的資料,用%date:~0,3%,儲存每天的資料, 用%date:~4,10%。此方法適合有外掛式主控件但對mysql沒有管理經驗的使用者。缺點是佔用空間比較多,備份期間mysql會短時間斷開(例如:針 對30M左右的資料庫耗時5s左右)。
==============
假想環境:
MySQL 安裝位置:C:MySQL
論壇資料庫名稱為:bbs
MySQL root 密碼:123456
Database Backup目的地:D:db_backup
指令碼:
| 代碼如下 |
複製代碼 |
@echo off C:MySQLbinmysqladmin -u root --password=123456 shutdown C:MySQLbinmysqldump --opt -u root --password=123456 bbs > D:db_backupbbs.sql C:MySQLbinmysqld-nt |
將以上代碼儲存為backup_db.bat
然後使用Windows的“計劃任務”定時執行該指令碼即可。(例如:每天淩晨5點執行back_db.bat)
----------------------------------------------------------------------------------------------------------------
利用WinRAR對MySQL資料庫進行定時備份。
對於MySQL的備份,最好的方法就是直接備份MySQL資料庫的Data目錄。下面提供了一個利用WinRAR來對Data目錄進行定時備份的方法。
首先當然要把WinRAR安裝到電腦上。
將下面的命令寫入到一個文字檔裡
| 代碼如下 |
複製代碼 |
net stop mysql del d:mysqldata /q c:progra~1winrarwinrar a -ag -k -r -s d:mysql.rar d:mysqldata net start mysql |
儲存,然後將文字檔的副檔名修改成CMD。
進入控制面版,開啟計劃任務,雙擊“添加計劃任務”。在計劃任務嚮導中找到剛才的CMD檔案,接著為這個任務指定一個已耗用時間和運行時使用的帳號密碼就可以了
在windows下要實現定時備份我們需要藉助於windows計劃任務現實現了,大家可以以這個實現想到更多的東西哦。