Windows环境下自动定时备份MySQL数据库

这里要使用Windows批处理文件,调用MySQL自带的备份工具,来实现备份MySQL数据库。

Windows批处理脚本文件如下:

rem auther:abc
rem date:20180108
rem ******MySQL backup start********
@echo off
forfiles /p "F:\MySQL BackUp" /m backup_*.sql -d -30 /c "cmd /c del /f @path"
set "Ymd=%date:~0,4%%date:~5,2%%date:~8,2%0%time:~1,1%%time:~3,2%%time:~6,2%"
"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 "myweb" > "F:\MySQL BackUp\backup_%Ymd%.sql"
@echo on
rem ******MySQL backup end********


使用方法:

forfiles /p "F:\MySQL BackUp" /m backup_*.sql -d -30 /c "cmd /c del /f @path"

forfiles命令是用来对备份目录下的过期的备份文件进行删除。”F:\MySQL BackUp”是备份文件所在的目录路径,可以自行修改。backup_*.sql指的是该目录下所有以backup_开头,以.sql作为后缀的数据库备份文件。-30表示30天过期。

set "Ymd=%date:~0,4%%date:~5,2%%date:~8,2%0%time:~1,1%%time:~3,2%%time:~6,2%"

set命令定义一个名为“Ymd”的变量,这个变量的值就是后面的一大串规则,是当前的日期和时间

 

"C:\Program Files\MySQL\MySQL Server 5.7\bin\mysqldump"

这一行命令是调用MySQL自带的备份工具,路径写你自己的“mysqldump.exe”所在目录路径,一般都在MySQL安装路径的\bin目录下。

 

–user=root –password=123456 –host=127.0.0.1 –protocol=tcp –port=3306

–user=root
这是MySQL数据库的账户名=root

–password=123456
这是MySQL数据库的账户密码=123456

–host=127.0.0.1
这是数据库的ip地址=127.0.0.1

–port=3306
这是数据库服务端口号=3306

 

–events "myweb" > "F:\MySQL BackUp\backup_%Ymd%.sql"

events参数即实现了将数据库备份到一个指定的文件这一操作。”myweb”是要做备份的数据库名称,大于号“>”右边的是我们的备份文件所保存的目录和文件名。

编辑好批处理文件,另存为mySQL_backup.bat
 

然后设置Windows定时任务,定时运行该批处理脚本文件即可实现定时自动备份数据库了。

下面是Windows10创建定时执行的计划任务步骤:

在【控制面板】【所有控制面板项】【管理工具】打开【任务计划程序】

创建任务:

1.【常规】这里【名称】随便填上,选择【不管用户是否登录都要运行】,勾选【使用最高权限运行】

 

2.【触发器】这里【新建】-【新建触发器】然后【按预定计划】选择【每天】,开始:2018/1/9今天,3:30:00执行时间,【每隔】1天发生一次,即是每天都运行一次任务。然后勾选【已启用】-【确定】

 

3.【操作】-【新建】-【启动程序】-【程序或脚本】下面框里就是我们需要运行的程序的路径,填好后【确定】

 

4.【条件】这里全部不选。

 

5.【设置】这里只要勾选【允许按需运行任务】即可,然后检查无误之后点【确定】,就完成了。

 

至此,Windows批处理脚本文件配合Windows计划任务,就实现了自动定时备份MySQL数据库,并且自动删除超过30天的旧备份。

发表评论

电子邮件地址不会被公开。 必填项已用*标注