
以下提供您一種自動進行異地備份的方案!此方案的運作環境是裝有 MySQL 的 Windows NT/XP/2003 系統;這裡指的是用來進行備份工作的主機,資料庫主機可以是任何作業系統。
- 適當修改以下內容,然後存成一個 .bat 檔。
代碼: 選擇全部
@echo off REM /* MysqlBinPath: MySQL 可執行檔路徑,結尾請不要放 "\" REM * BackupPath: 放置 sql 備份檔的位置,結尾請不要放 "\" REM * DBhost: 資料庫主機的位址,可用 dn 或 ip REM * DBuser: 資料庫使用者名稱 REM * DBpass: 資料庫使用者密碼 REM * DBname: 資料庫名稱 REM * Argument: 其他的參數 */ SET MysqlBinPath=D:\AppServ\mysql\bin SET BackupPath=D:\Backup SET DBhost=127.0.0.1 SET DBuser=username SET DBpass=password SET DBname=databasename SET Argument=--opt --compress --force --default-character-set=utf8 REM /* 以下不必修改 */ REM /* 取得日期。參照: http://alexchuo.blogspot.com/2006/07/blog-post.html */ FOR /F "tokens=1-4 delims=/ " %%a IN ("%date%") DO ( SET _MyDate=%%a-%%b-%%c %%d ) REM /* 以日期為檔名,匯出 .sql 檔案。 */ echo 資料庫 %DBname% 備份中…… "%MysqlBinPath%\mysqldump" --host=%DBhost% --user=%DBuser% --password=%DBpass% %Argument% %DBname% > "%BackupPath%\%_MyDate%.sql" REM /* 偵錯處理,發生錯誤就停住畫面以便看清楚錯誤訊息。 */ IF NOT %ERRORLEVEL% == 0 ( del "%BackupPath%\%_MyDate%.sql echo. echo 不好了,好像出了什麼問題的樣子。請看上面的訊息吧! pause )
- 之後,只要執行這個 .bat 檔,就會在設定的目錄中依目前日期產生以 "西元年/月/日 星期幾.sql" 為檔名的備份檔了。您可以先自己執行一次試試看有沒有成功。
- 使用 Windows 的排程工具(控制台/排定的工作)定期執行這個 .bat 檔,就能輕鬆地遠端定期自動備份資料庫囉。