新建脚本文件db_backup.bat
内容如下
forfiles /p "C:/Users/Administrator/Desktop/db_backup" /m backup_*.sql -d -30 /c "cmd /c del /f @path"
set "myDate=%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 --host=127.0.0.1 --protocol=tcp --port=3306 --default-character-set=utf8 --single-transaction=TRUE --routines --events "要备份的数据库名" > "C:/Users/Administrator/Desktop/db_backup/backup_%myDate%.sql"
脚本内容稍稍解释一下
forfiles /p "C:/Users/Administrator/Desktop/db_backup" /m backup_*.sql -d -30 /c "cmd /c del /f @path"
这一句是删除过期备份数据, "E:\mysql\MySQL BackUp"路径下backup_为前缀,.sql为后缀的文件 删除条件是30天
不过好像有什么问题这句没啥用 , 等一位windows大佬指导
set "myDate=%date:~0,4%%date:~5,2%%date:~8,2%0%time:~1,1%%time:~3,2%%time:~6,2%"
设置一个myDate变量,也就是时间, 后面创建文件名的时候要用到 这一串不用管
C:/Program Files/MySQL/MySQL Server 5.7/bin/mysqldump
这里说的是mysql/bin里面的mysqldump的安装路径
C:/Users/Administrator/Desktop/db_backup/
这个是要备份的目标目录
还有一个要注意的是 , 在mysql5.7之后 , 它不允许直接把帐号密码出现在命令中, 所以原命令中的帐号密码参数我删掉了
--user=root --password=123456
需要的话拼在 --host之前
官方给出的解决办法是写在my.cnf配置文件中 , 可是安装新版的mysql已经不会再生成my.cnf文件了
- 去mysql安装根目录手动创建my.cnf文件,并添加以下参数
[mysqldump]
user=root
password=admin
好了,现在双击脚本看看 是不是能生成备份了?
打开开始菜单, 直接搜索计划任务
- 创建任务
- 常规项中,选择不管用户是否登录都运行+使用最高权限运行
- 触发器选每天凌晨时间, 下面的勾全取消
- 操作选启动程序,添加刚才编写的脚本
- 条件和设置中的勾全取消 , 点确定
OK啦 , 大功告成!