windows環境設定mysql自動備份(測試成功)
阿新 • • 發佈:2019-01-09
文章目錄
背景介紹
最近做了個小程式,使用的是mysql資料庫,涉及到將程式資料備份的事;雖然大部分資料庫客戶端工具都具有備份功能,但並不能做到定期自動備份;在Windows環境下,手工備份MySQL是很繁瑣的,所以我們
要實現資料庫的自動備份就需要一下兩步:
- 利用MySQL提供的備份命令mysqldump
- 結合Windows的任務計劃程式
實現步驟
編寫指令碼
- 說明:該指令碼不會關閉資料庫,並且可以按每一天的時間來命名備份檔案。
新建一個數據庫備份檔案的存放目錄,如:C:\mysql_backup
注意:目錄地址中不要帶空格!
新建一個批處理檔案,如:mysql_backup_tool.bat,檔案內容如下:
rem ******MySQL backup start****** @echo off ::刪除一週前的備份資料 forfiles /p "c:\mysql_backup" /m backup_*.sql -d -7 /c "cmd /c del /f @path" ::設定時間變數 set "Ymd=%date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2%" ::進入mysql安裝目錄的bin目錄下 cd C:\Program Files\MySQL\MySQL Server 5.7\bin\ ::執行備份操作 mysqldump --opt --single-transaction=TRUE --user=root --password=123456 --host=127.0.0.1 --protocol=tcp --port=3306 --default-character-set=utf8 --single-transaction=TRUE --routines --events "testdba" > c:\mysql_backup\backup_%Ymd%.sql @echo on rem ******MySQL backup end******
- forfiles 為刪除過期檔案的命令,-d -7 刪除7天的檔案;
- 關於時間引數的參考:
%date:~0,10% //提取年月日資訊 %date:~-3% //提取星期幾資訊 %time:~0,5% //提取時間中的時和分 %time:~0,-3% //提取時和分和秒資訊
- mysqldump 為MySQL提供的備份命令,該命令所在目錄為MySQL安裝目錄下的bin資料夾中,此處直接使用該命令的前提是該命令所在bin資料夾已被設定為系統環境變數,如未設定,則要寫全路徑;
- –user=root 為 MySQL 使用者名稱;
- –password=123456 為 MySQL 密碼;
- –host=127.0.0.1 為 MySQL 主機名;
- “testdba” 為要備份的資料庫的名稱;
- backup_%Ymd%.sql 是根據當前時間規則生成備份檔案的名稱。
新增定時任務
-
在Windows Server2012中,我們進入伺服器管理面板,點選右上角選單欄中的“工具”,選擇其中的“任務計劃程式”:
-
打開了任務計劃程式之後,我們點選右側的“建立基本任務”:
-
然後,我們需要填寫任務的名稱,以及描述資訊:
-
點選下一步之後,我們需要設定任務的執行頻率,我選擇的是“每天”:
-
再次點選“下一步”,設定任務執行的時間,我選擇了夜深人靜的2點:
-
繼續“下一步”後,我們選擇“啟動程式”:
-
在之後的對話方塊中,我們需要選擇剛才所編寫的批處理檔案:
-
完成這些步驟後,windows會給我們看一下整個任務的概述資訊:
-
確定無誤之後,點選“完成”就可以了。此時我們就會看到在Windows的任務列表裡,多了一條新的任務:
至此,在Windows環境下自動備份MySQL的設定就全部完成了。 -
順便展示下我的備份測試結果: