备份mysql一直是很多朋友比较头痛的问题,尤其是按按时间段备份,今天笔者将以图文教程的方法教你每天如何一键备份mysql数据库文件。
1、先是建立批处理文件,将以下代码另存为.bat文件,文件名最好为英文。注意下面的路径,以笔者自己的数据库为例,数据库安装在D盘下mysqlmysql下,备份位置在F:beifen,后面的代码是日期。
- @echo off
-
- color 0D
-
- MODE con: COLS=71 LINES=25
-
- title mysql数据库自动备份脚本(任务计划)--脚本作者:http://www.***.com
-
- set sou_dir="D:mysqlMysqldata"
-
- set obj_dir=F:beifen%date:~0,10%
-
- net stop mysql
-
- md %obj_dir%
-
- xcopy /e /y %sou_dir% %obj_dir%
-
- net start mysql
-
- @echo off&setlocal enabledelayedexpansion
-
- call:D,30
-
- echo. 30天前日期为:%D%
-
- echo. 删除30天以前备份......
-
- if exist F:beifen%D% rd /s /q F:beifen%D%
-
- echo 自动备份完成,程序将自动退出......
-
- ping -n 2 127.0.0>nul
-
- exit
-
- :D
-
- for /f "tokens=1-3 delims=-:/ " %%a in ("%date%") do (
-
- set Y=%%a&set M=%%b&set D=%%c
-
- if "!M:~0,1!"=="0" set M=!M:~1!
-
- if "!D:~0,1!"=="0" set D=!D:~1!
-
- )
-
- set/a D-=%1
-
- if %D% gtr 0 goto:Y
-
- :M
-
- set/a M-=1
-
- if !M!==0 set/a Y-=1,M=12
-
- set/a "T=^!(M-2)","R=(^!(Y%%4)&^!^!(Y%%100))|^!(Y%%400)","C=^!(M-4)|^!(M-6)|^!(M-9)|^!(M-11)","D=T*(28+R)+C*30+(^!T&^!C)
-
- *31+D"
-
- if %D% leq 0 goto:M
-
- :Y
-
- set M=0%M%&set D=0%D%&set D=%Y%-!M:~-2!-!D:~-2!
-
2、建立一个计划任务,可以每天或三天,甚至更长时间备份,备份时mysql自动停止,备份完成后,mysql会自动启动。打开控制面板---双击任务计划,按照提示一步步选择,如下图所示:
3、我们可以根据需要设定每天、每周或其他日期定期备份mysql数据库。笔者实验过,完全满足我们日常mysql数据库备份工作需要。