windows环境定时备份mysql

新建脚本文件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啦 , 大功告成!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。