1.建立backup_db.bat文件,写入下面命令:
同时导出数据库结构和数据
rem ******MySQL backup start********
@echo off
forfiles /p "E:\MySQL_bak" /m *_bak.sql -d -30 /c "cmd /c del /f @path"
set "Ymd=%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 --user=root --password=root --host=127.0.0.1 --protocol=tcp --port=3306 --default-character-set=utf8 --single-transaction=TRUE --routines --events "mybaiyou" > "E:\MySQL_bak\%Ymd%_bak.sql"
@echo on
rem ******MySQL backup end********
分开导出数据库结构和数据(推荐)
rem ******MySQL Structure backup start********
@echo off
forfiles /p "E:\MySQL_bak" /m *_bak.sql -d -30 /c "cmd /c del /f @path"
set "Ymd=%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 --user=root --password=root --host=127.0.0.1 --protocol=tcp --port=3306 --default-character-set=utf8 --single-transaction=TRUE --routines --events -d "mybaiyou" > "E:\MySQL_bak\structure_%Ymd%_bak.sql"
rem ******MySQL Structure backup end********
rem ******MySQL Data backup start********
"C:\Program Files\MySQL\MySQL Server 5.7\bin\mysqldump" --opt --single-transaction=TRUE --user=root --password=root --host=127.0.0.1 --protocol=tcp --port=3306 --default-character-set=utf8 --single-transaction=TRUE --routines --events -t "mybaiyou" > "E:\MySQL_bak\data_%Ymd%_bak.sql"
@echo on
rem ******MySQL Data backup end********
命令:forfiles /p "E:\mysql\MySQL BackUp" /m backup_*.sql -d -30 /c "cmd /c del /f @path"
解释:将文件夹"E:\mysql\MySQL BackUp"下backup_*.sql文件30天后删除
命令:set "Ymd=%date:~0,4%%date:~5,2%%date:~8,2%0%time:~1,1%%time:~3,2%%time:~6,2%"
解释:windowscmd命令取当前时间,set赋值给变量Ymd
%date:~0,4% 表示从左向右指针向右偏0位,然后从指针偏移到的位置开始提取4位字符,结果是2014(年的值)
%date:~5,2% 表示指针从左向右偏移5位,然后从偏移处开始提取2位字符,结果是03(月的值)
%date:~8,2% 表示指针从左向右偏移8位,然后从偏移处开始提取2位字符,结果是01(日的值)
%date:~5% 表示指针从左向右偏移5位,然后提取所有的值
%date:~-5% 表示指针反方向偏移,从最右端开始,偏移5位,然后从指针处提取左边的所有数值。
%date:~0,10% //提取年月日信息
%date:~-3% //提取星期几信息
%time:~0,5% //提取时间中的时和分
%time:~0,-3% //提取时和分和秒信息
测试:md d:\%date:~0,4%%date:~5,2%%date:~8,2%_%time:~0,2%%time:~3,2%%time:~6,2%
命令:"E:\mysql\MySQL Server 5.6\bin\mysqldump"
解释:使用MySQL自带备份工具mysqldump.exe
命令: --routines
解释:导出存储过程以及自定义函数
命令: --events
解释:导出事件
命令:数据库名 > xxx.sql
解释:导出数据和表结构(导入时,可能出现表未建立,先插数据异常)
命令:-d 数据库名 > structure_yymmddHHmmss.sql
解释:导出结构不导出数据
命令:-t 数据库名 > data_yymmddHHmmss.sql
解释:导出数据不导出结构
tips:导入不要使用客户端工具,可能会超时。
2.设置Windows定时任务:
我的电脑-管理
如果没有显示,重新打开计算机管理即可。
选中右键可以立刻执行该定时任务。