項目部署在服務期上之后,有了新的需求,需要每月定時備份mysql數據庫的所有數據!
查找了網上的多篇文章之后,自己又對bat文件中的mysqldump語句進行改進,可以實現了不用輸入密碼就能自動定時備份數據庫的功能!
下面就先以每天自動備份作為例子,將整個流程展示出來:
1.首先一點,你現在一個固定的地方,新建一個bat文件,用於系統的任務計划進程去執行bat中定義的相關操作!
因為是備份mysql數據庫,所以我將bat文件新建在mysql的安裝目錄的bin目錄下:
新建back_db.bat文件
2.將一下的dos命令 粘貼在back_db.bat文件中
@echo off
set "Ymd=%date:~,4%%date:~5,2%%date:~8,2%"
"C:\Program Files\MySQL\MySQL Server 5.5\bin\mysqldump" -u root --password=root performance> D:\db_backup\performance_%Ymd%.sql
@echo on
分析:
1>首先 【set "Ymd=%date:~,4%%date:~5,2%%date:~8,2%"】是定義一個日期變量,用於下面拼接備份文件的名字,區別是哪一天的備份。
2>【"C:\Program Files\MySQL\MySQL Server 5.5\bin\mysqldump"】這里加引號是因為 bat文件中的變量如果出現空格的話,會提示無效的參數數量
3>mysqldump的標准格式應該是【mysqldump -u 用戶名 -p 數據庫名 > 導出的文件名】,在這里應該是
【"C:\Program Files\MySQL\MySQL Server 5.5\bin\mysqldump" -u root -p performance> D:\db_backup\performance_%Ymd%.sql】,而這樣的話,執行了此bat文件的話,dos窗口彈出后還需要手動鍵入數據庫的連接密碼,並不能實現自動的備份功能。所以,這里進行了一定的更改,更改后代碼如下:【"C:\Program Files\MySQL\MySQL Server 5.5\bin\mysqldump" -u root --password=root performance> D:\db_backup\performance_%Ymd%.sql】
4>【D:\db_backup\performance_%Ymd%.sql】就是備份文件存儲的位置,這個文件夾可以先創建好,也可以不用創建!
3.找到系統的 任務計划程序,打開
這是用來演示,故此設為每天都備份
因為希望執行備份任務,所以,這里選擇啟動程序
選擇需要執行的程序的腳本文件
此刻完成后,找到此任務,發現狀態為 准備就緒
到了觸發的時間后,去指定的路徑下,也就是bat文件中配置的路徑【D:\db_backup\performance_%Ymd%.sql】下找到這個備份文件!
並且數據庫的存儲的數據,DDL DML語句等都備份了下來
然后,將任務計划設定成你想要的時間段就好了!