windows版
@title MySql备份脚本
@echo off
rem 将该脚本放在定时任务中执行,compmgmt.msc
rem 设置保留几天的备份文件
set number=7
rem 设置要备份的数据库信息
set host=127.0.0.1
set port=3306
set user=root
set password=root
set database=demo
rem 设置mysq安装路径和备份路径
set mysqldumppath=D:\tools\mysql-5.6.24-winx64\bin
set resultfilepath=D:\home\mysql
rem 获取当前时间
set nowtime=%Date:~0,4%-%Date:~5,2%-%Date:~8,2%_%Time:~0,2%%Time:~3,2%%Time:~6,2%
rem 常用命令
rem --quick -q 不缓存到内存中,防止数据过大内存溢出备份失败
rem --skip-extended-insert 同一张表生成多条插入语句,防止大表导入失败
rem -h %host% -P %port% 远程备份时开启
@echo 备份命令执行中
rem 普通导出,恢复数据 mysql -uroot -proot demo < D:\home\mysql\demo_bak.sql
%mysqldumppath%\mysqldump -h %host% -P %port% -u%user% -p%password% %database% --quick -q > %resultfilepath%\[%database%]%nowtime%.sql
rem 压缩导出,需要将 gzip.exe 放入 system32 文件夹,恢复数据 gunzip < demo_bak.sql.gz | mysql -uroot -proot demo
rem %mysqldumppath%\mysqldump -h %host% -P %port% -u%user% -p%password% %database% --quick -q | gzip > %resultfilepath%\[%database%]%nowtime%.sql.gz
@echo 删除%number%天前的文件
forfiles /p %resultfilepath% /s /m *.sql /d -%number% /c "cmd /c del @file /f"
@echo 备份结束
rem pause
@echo on
exit