【更新】
因为windows存在 10点前后生成的时间格式不同,导致无法正确生成sql文件。导致上次的备份文件无法生成
研究后对旧内容进行修改
@echo off
forfiles /p "D:ERP_MySQLbak" /m mysql_backup_*.sql -d -2 /c "cmd /c del /f @path"
set/a a=%time:~0,2%,b=a+100
mysqldump --opt -uroot1 -proot -h10.26.40.111 --all-databases >D:ERP_MySQLbakmysql_backup_%date:~0,4%-%date:~5,2%-%date:~8,2%_%b:~-2%_%time:~3,2%_%time:~6,2%.sql
@echo on
将原来的时间部分进行修改
说明:
将时间点 转化为数字,然后将时间加100 这样获取到的时间就是 101、102 ... 111...124,然后截取后两位。就能得到正确的结果。01、02.....10、12、16
问题解决
需要备份首先就需要在本地安装MySQL
安装教程:
https://www.cnblogs.com/com-xiaolanchong/p/12849455.html
自动备份和删除备份文件的bat脚本:
@echo off
forfiles /p "D:ERP_MySQLbak" /m mysql_backup_*.sql -d -1 /c "cmd /c del /f @path"
set "yMd=%date:~,4%%date:~5,2%%date:~8,2%"
set "hms=%time:~,2%%time:~3,2%%time:~6,2%"
"D:Program Filesmysql-5.7.28-winx64inmysqldump.exe" --opt -uroot1 -proot -h***.***.***.*** --all-databases>D:ERP_MySQLbakmysql_backup_%yMd%-%hms%.sql
@echo on
说明
forfiles /p "D:ERP_MySQLbak" /m mysql_backup_*.sql -d -1 /c "cmd /c del /f @path"
删除之前的备份文件
"D:ERP_MySQLbak" 是备份文件存储路径
mysql_backup_*.sql 是备份文件名称 以mysql_backup_ 开头 以.sql结尾
-d -1 是有效期为1天
set "yMd=%date:~,4%%date:~5,2%%date:~8,2%"
set "hms=%time:~,2%%time:~3,2%%time:~6,2%"
设置文件名称中的日期和时间
"D:Program Filesmysql-5.7.28-winx64inmysqldump.exe" --opt -uroot1 -proot -h***.***.***.*** --all-databases>D:ERP_MySQLbakmysql_backup_%yMd%-%hms%.sql
指定 mysqldump目录,使用root1 备份所有数据库到 D:ERP_MySQLbakmysql_backup_%yMd%-%hms%.sql 文件
剩下就是在windows中创建计划任务。
起个名
搞个触发器
指定脚本
条件和设置 自己 搞
保存,直接执行一次,测试任务是否可以执行。
下次执行时间5-9:1:05
上次执行时间5-8 10:55
等着第二天看结果