windows10 下 mysql 数据库自动备份与还原 (.bat), 并创建计划任务

一、编写脚本及脚本解释
1.mysql 数据库自动备份脚本
@echo off
@echo 开始备份数据库
set hour=%Time:~0,2%
if “%Time:~0,1%”==" " set hour=0%Time:~1,1%
set now=%Date:~0,4%%Date:~5,2%%Date:~8,2%-%hour%%Time:~3,2%%Time:~6,2%
set host=192.168.6.246
set port=3308
set user=root
set pass=123456
set dbname=abcd
set back_path=D:\MySQL5\MySQL_back
set backupfile=%back_path%%dbname%-%now%.sql
“D:\MySQL5\bin\mysqldump” -h%host% -P%port% -u%user% -p%pass% -c –add-drop-table %dbname% > %backupfile%
@echo 数据库备份成功
@echo 删除 2 天前备份的文件
forfiles /p “%back_path%” /s /m *.sql /d -2 /c “cmd /c del @path”
@echo 完成,3 秒后程序退出
以下是对上边代码的解释:
@echo off
@echo 开始备份数据库 // 命令行窗口中显示此条信息
set hour=%Time:~0,2% // 将 hour 设置为此刻小时位的时间,从 0 位置开始取 2 位
if “%Time:~0,1%”==" " set hour=0%Time:~1,1% //(小时位如果是个位数例如 9 点,则默认不是 09,而是 9,前一位位空)判断小时位第一位是否为空,如果为空则添加上 0,如果不为空则不执行,hour 为前一条语句设置的。
set now=%Date:~0,4%%Date:~5,2%%Date:~8,2%-%hour%%Time:~3,2%%Time:~6,2% // 获取具体时间
set host=192.168.6.246 // 设置数据库的 ip 地址
set port=3308 // 设置数据库端口号
set user=root // 设置用户名
set pass=123456 // 设置用户密码
set dbname=abcd // 设置数据库名称
set back_path=D:\MySQL5\MySQL_back // 设置备份的数据库的存储文件夹路径
set backupfile=%back_path%%dbname%-%now%.sql // 设置每次备份的数据库名称(此处为“数据库名 - 时间”)
“D:\MySQL5\bin\mysqldump” -h%host% -P%port% -u%user% -p%pass% -c –add-drop-table %dbname% > %backupfile% // 备份数据库的语句。(前方引号中的路径,为数据库安装目录下,mysqldump.exe 程序的路径)
@echo 数据库备份成功 // 命令行窗口中显示此条信息
@echo 删除 2 天前备份的文件 // 命令行窗口中显示此条信息
forfiles /p “%back_path%” /s /m *.sql /d -2 /c “cmd /c del @path” // 删除文件修改日期为 2 天前的数据库备份文件(如果更改删除文件的时间,只需更改语句中数字)注意:如果没有两天前的备份,会报错,没关系
@echo 完成,3 秒后程序退出 // 命令行窗口中显示此条信息

2.mysql 数据库备份脚本
@echo 开始恢复数据库
set host=192.168.6.72
set port=3310
set user=root
set pass=super
set dbname=test123
set back_path=D:\MySQL5\MySQL_back
set dbname_back=abcd-20191225-172133
set backupfile=%back_path%%dbname_back%.sql
“D:\MySQL5\bin\mysql” -h%host% -P%port% -u%user% -p%pass% %dbname%< %backupfile%
以下是对上边的代码解释:
@echo 开始恢复数据库 // 命令行窗口中显示此条信息
set host=192.168.6.72 // 要还原的数据库 IP 地址
set port=3310 // 要还原的数据库端口
set user=root // 设置用户名称
set pass=super // 设置用户密码
set dbname=test123 // 设置数据库名称
set back_path=D:\MySQL5\MySQL_back // 备份的数据库路径
set dbname_back=abcd-20191225-172133 // 设置备份的数据库具体名称
set backupfile=%back_path%%dbname_back%.sql // 将具体的路径和名称合并,
“D:\MySQL5\bin\mysql” -h%host% -P%port% -u%user% -p%pass% %dbname%< %backupfile% // 还原数据库的语句。(前方引号中的路径,为数据库安装目录下,mysql.exe 程序的路径)

注意:如果命令行窗口的中文乱码,是因为脚本编码不是 ANSI 编码,转换成 ANSI 编码即可解决

二、windows10 下创建计划任务
1. 右击此电脑图标,选择管理,选择任务计划程序库。(或者在控制面板的管理工具中,选择计划任务)

2. 选择右侧的创建任务

3. 自定义填入计划任务名称

4. 选择触发器,点击【新建】,在弹窗中更改计划。之后点击【确定】

5. 选择操作,点击【新建】,在弹窗中选择启动程序(默认即为启动程序),点击浏览,选择你的脚本文件。点击确定

6. 此时基本配置已配置完毕,点击确认即可。此时可从列表中看到刚才创建的计划任务

7. 若想试验是否成功,可通过调整计划所在电脑的时间来测试。