windows環境設置mysql自動備份(測試成功)


00、背景介紹

最近做了個小程序,使用的是mysql數據庫,涉及到將程序數據備份的事;雖然大部分數據庫客戶端工具都具有備份功能,但並不能做到定期自動備份;在Windows環境下,手工備份MySQL是很繁瑣的,所以我們
要實現數據庫的自動備份就需要一下兩步:

  • 利用MySQL提供的備份命令mysqldump
  • 結合Windows的任務計划程序

01、實現步驟

1、編寫腳本

  • 說明:此方法可以不用關閉數據庫,並且可以按每一天備份的時間來命名備份文件。

新建一個數據庫備份文件的存放目錄,如: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 是根據當前時間規則生成備份文件的名稱。

2、添加定時任務

在Windows Server2012中,我們進入服務器管理面板,點擊右上角菜單欄中的“工具”,選擇其中的“任務計划程序”:

打開了任務計划程序之后,我們點擊右側的“創建基本任務”:


然后,我們需要填寫任務的名稱,以及描述信息:


點擊下一步之后,我們需要設定任務的執行頻率,我選擇的是“每天”:


再次點擊“下一步”,設置任務執行的時間,我選擇了夜深人靜的2點:


繼續“下一步”后,我們選擇“啟動程序”:


在之后的對話框中,我們需要選擇剛才所編寫的批處理文件:


完成這些步驟后,windows會給我們看一下整個任務的概述信息:


確定無誤之后,點擊“完成”就可以了。此時我們就會看到在Windows的任務列表里,多了一條新的任務:

至此,在Windows環境下自動備份MySQL的設置就全部完成了。

順便展示下我的備份測試結果:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM