目录
一、本人搭建环境说明
二、普通备份方式:
1、编写批处理文件(文件里的注释是用:rem XXX)
2、设置定时自动备份:
三、加强版,自动压缩文件,并加密压缩文件
操作系统:Windows Server 2012 R2 Standard x64
数据库版本:Mysql 5.7.26
@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安装目录,保存后直接双击运行测试执行
执行后会在备份根目录下以数据库名命名的目录下生成备份文件。
打开服务器上的“服务器管理器 => 工具 => 任务计划程序 => 创建基本任务”,见下图:
输入名称:
设置任务定时触发机制:
设置时间及间隔:
选择“启动程序”:
选择刚才创建的脚本,将脚本所在目录填至“起始于”:
完成即可。
通过以上设置,即可在设置的触发时间自动运行备份脚本,达到定时自动备份的目的。
(使用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%