经常有些客户会把MySQL跑在Windows上,虽然不建议这么做但是一定程度降低了运维的上手难度。大部分运维工具在Windows环境中无法使用,因此只能选用MySQL自带的逻辑备份工具mysqldump来进行备份。
rem *******************************Code Start*****************************
@echo off
set "Ymd=%date:~,4%%date:~5,2%%date:~8,2%"
E:\mysql-5.5\bin\mysqldump -hlocalhost -uroot -P3306 -pantscity2016 --default-character-set=utf8 --single-transaction --hex-blob --triggers --routines --events --all-databases > E:\mysql-5.5\backup\all_db_with_data_%Ymd%.sql
forfiles -p "E:\mysql-5.5\backup" -s -m *.sql -d -30 -c "cmd /c del @path"
@echo on
rem *******************************Code End*****************************
将以上代码保存为backup_db.bat
然后使用Windows的“计划任务”定时执行该脚本即可。(例如:每天凌晨5点执行back_db.bat)
说明:此方法可以不用关闭数据库,并且可以按每一天的时间来名称备份文件。
通过%date:~5,2%来组合得出当前日期,组合的效果为yyyymmdd,date命令得到的日期格式默认为yyyy-mm-dd(
如果不是此格式可以通过pause命令来暂停命令行窗口看通过%date:~,20%得到的当前计算机日期格式)
,所以通过%date:~5,2%即可得到日期中的第五个字符开始的两个字符,例如今天为2016-03-05,通过%date:~5,2%则可以得到02。(日期的字符串的下标是从0开始的)
下一行为删除30日以前的备份