目錄
一、本人搭建環境說明
操作系統:Windows Server 2012 R2 Standard x64
數據庫版本:Mysql 5.7.26
二、普通備份方式:
1、編寫批處理文件(文件裏的註釋是用:rem XXX)
@echo off
rem 數據庫相關配置
set dbname=mydb
set host=127.0.0.1
set port=3306
set user=root
set pass=123456
rem 備份根路徑(會自動在此目錄下創建以數據庫名爲文件夾的目錄,備份文件會放在目錄下)
set basedir=D:\dbBack\mysql
rem 文件名相關配置,生成的備份文件名格式:mydb-yyyyMMddhhmmss.sql
set hour=%time:~0,2%
if "%time:~0,1%"==" " set hour=0%time:~1,1%
set now=%DATE:~3,4%%DATE:~8,2%%DATE:~11,2%%hour%%TIME:~3,2%%TIME:~6,2%
set backupfile=%basedir%\%dbname%\%dbname%-%now%.sql
if not exist %dbname% md %dbname%
rem mysql安裝的bin目錄,需要目錄下有“mysqldump.exe”文件
"C:\mysql\bin\mysqldump" -h%host% -P%port% -u%user% -p%pass% -c --add-drop-table %dbname% > %backupfile%
將以上代碼直接複製到新建的文本文件,注意將後綴 .txt 修改爲 .bat
修改數據庫相關配置、備份根路徑和mysql安裝目錄,保存後直接雙擊運行測試執行
執行後會在備份根目錄下以數據庫名命名的目錄下生成備份文件。
2、設置定時自動備份:
打開服務器上的“服務器管理器 => 工具 => 任務計劃程序 => 創建基本任務”,見下圖:
輸入名稱:
設置任務定時觸發機制:
設置時間及間隔:
選擇“啓動程序”:
選擇剛纔創建的腳本,將腳本所在目錄填至“起始於”:
完成即可。
通過以上設置,即可在設置的觸發時間自動運行備份腳本,達到定時自動備份的目的。
三、加強版,自動壓縮文件,並加密壓縮文件
(使用bat調用WinRaR壓縮爲 .rar文件):
只需在以上bat文件後面加兩行壓縮及刪除.sql文件的代碼即可,完整代碼如下:
@echo off
rem 數據庫相關配置
set dbname=mydb
set host=127.0.0.1
set port=3306
set user=root
set pass=123456
rem 備份根路徑(會自動在此目錄下創建以數據庫名爲文件夾的目錄,備份文件會放在目錄下)
set basedir=C:\dbBack\
rem 文件名相關配置,生成的備份文件名格式:mydb-yyyyMMddhhmmss.sql
set hour=%time:~0,2%
if "%time:~0,1%"==" " set hour=0%time:~1,1%
set now=%DATE:~3,4%%DATE:~8,2%%DATE:~11,2%%hour%%TIME:~3,2%%TIME:~6,2%
set backupfile=%basedir%\%dbname%\%dbname%-%now%.sql
if not exist %dbname% md %dbname%
rem mysql安裝的bin目錄,需要目錄下有“mysqldump.exe”文件
"C:\mysql\bin\mysqldump" -h%host% -P%port% -u%user% -p%pass% -c --add-drop-table %dbname% > %backupfile%
"C:\Program Files\WinRAR\WinRAR.exe" a -ibck -m5 -p123456 %basedir%\%dbname%\%dbname%-%now%.rar %basedir%\%dbname%\%dbname%-%now%.sql
Del %basedir%\%dbname%\%dbname%-%now%.sql
注意以上是使用的bat文件調用WinRAR命令壓縮的文件,系統需要安裝了 WinRAR壓縮工具,且上面的WinRAR路徑需正確。
其中的 -p123456爲設置壓縮包密碼,表示解壓密碼爲:123456
已知問題:
如果是在win10上或不同操作系統上,有可能文件名相關配置裏的時間會有偏離,我win10的機器使用如下代碼即可:
將 set now=XXX 這一行替換成:
set now=%date:~0,4%%date:~5,2%%date:~8,2%%hour%%time:~3,2%%time:~6,2%