mysql 自动备份(windows 环境)

windows环境设置mysql自动备份(测试成功)
要实现数据库的自动备份就需要一下两步:

#一、利用MySQL提供的备份命令mysqldump ,结合Windows的任务计划程序

实现步骤

编写脚本

说明:该脚本不会关闭数据库,并且可以按每一天的时间来命名备份文件。

新建一个数据库备份文件的存放目录,如:C:\mysql_backup

注意:目录地址中不要带空格!

新建一个批处理文件,如:mysql_backup_tool.bat,文件内容如下:

rem ******MySQL backup start******

@echo off

::删除一周前的备份数据

forfiles /p "c:\mysql_backup" /m backup_*.sql -d -7 /c "cmd /c del /f @path"

::设置时间变量

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

::进入mysql安装目录的bin目录下

cd 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 "testdba" > c:\mysql_backup\backup_%Ymd%.sql

@echo on

rem ******MySQL backup end******

forfiles 为删除过期文件的命令,-d -7 删除7天的文件;

关于时间参数的参考:

%date:~0,10% //提取年月日信息

%date:~-3% //提取星期几信息

%time:~0,5% //提取时间中的时和分

%time:~0,-3% //提取时和分和秒信息

mysqldump 为MySQL提供的备份命令,该命令所在目录为MySQL安装目录下的bin文件夹中,此处直接使用该命令的前提是该命令所在bin文件夹已被设置为系统环境变量,如未设置,则要写全路径;

–user=root 为 MySQL 用户名;

–password=123456 为 MySQL 密码;

–host=127.0.0.1 为 MySQL 主机名;

“testdba” 为要备份的数据库的名称;

backup_%Ymd%.sql 是根据当前时间规则生成备份文件的名称。

注意:mysql 5.6 以上版本的数据库可能会报下面错误
mysqldump: [Warning] Using a password on the command line interface can be insecure.

解决办法:

找到数据库配置文件 我的是在 /etc/mysql/mysql.conf.d/mysqld.cnf

在最后部分加上

[mysqldump]

user=user_name

password=password

把用户名和密码换成自己需要的即可

然后执行命令 可以不用带用户名和密码,新建一个批处理文件,如:mysql_backup_tool.bat,更改文件内容如下:

rem ******MySQL backup start******

@echo off

::删除一周前的备份数据

forfiles /p "c:\mysql_backup" /m backup_*.sql -d -7 /c "cmd /c del /f @path"

::设置时间变量

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

::进入mysql安装目录的bin目录下

cd C:\Program Files\MySQL\MySQL Server 5.7\bin\

::执行备份操作

mysqldump --opt   testdba > c:\mysql_backup\testdba_%Ymd%.sql

@echo on

rem ******MySQL backup end******

“testdba” 为要备份的数据库的名称;

添加定时任务

在这里插入图片描述
然后,我们需要填写任务的名称,以及描述信息:

在这里插入图片描述

点击下一步之后,我们需要设定任务的执行频率,我选择的是“每天”:
在这里插入图片描述

再次点击“下一步”,设置任务执行的时间,我选择了夜深人静的2点:

在这里插入图片描述

继续“下一步”后,我们选择“启动程序”:

在这里插入图片描述

在之后的对话框中,我们需要选择刚才所编写的批处理文件:

在这里插入图片描述

完成这些步骤后,windows会给我们看一下整个任务的概述信息:

在这里插入图片描述

确定无误之后,点击“完成”就可以了。此时我们就会看到在Windows的任务列表里,多了一条新的任务:

在这里插入图片描述

至此,在Windows环境下自动备份MySQL的设置就全部完成了。