windows mysql定时备份任务

mysqlbak.cmd
echo off
set txt1=%date:~0,4%
::当前年
set txt2=%date:~5,2%
::当前月
set txt3=%date:~8,2%
::当前日
set txt4=%time:~0,2%
::当前小时
set txt5=%time:~3,2%
::当前分钟
set txt6=%time:~6,2%
::当前秒
set date=%txt1%%txt2%%txt3%
set time=%txt4%%txt5%%txt6%

::数据库用户名
set user=root

::数据库用户密码
set passwd=root

::要备份的数据库
set db=test

::7z压缩工具绝对路径
set _7z="D:\Program Files\7-Zip\7z.exe"

::mysqldump数据库备份工具绝对路径
set mysqldump="D:\Programs\mysql-5.6.34-winx64\bin\mysqldump.exe"

::备份文件夹
set bakdir="E:\mysqlbak\data"

set file7z=%bakdir%\%db%%date%%time%.7z
set sqlfile=%bakdir%\%db%%date%%time%.sql
echo --------------------------------------------------
echo -------------正在执行MySQL数据库备份--------------
echo --------------------------------------------------
echo ...
echo ...
echo 导出Database...
if exist %sqlfile% del %sqlfile%
%mysqldump% --add-drop-table --default-character-set=gbk -c -u %user% -p%passwd% -h  localhost  %db% > %sqlfile%
echo ...
echo ...
if exist %file7z% del %file7z%
echo 压缩文件...%file7z% %sqlfile%
%_7z% a -t7z %file7z% %sqlfile% -mx9
echo ...
echo ...
echo 删除临时文件
del %sqlfile%
echo ...
echo ...
echo 备份完成!
rem pause 


rem 安装定时任务 每分钟一次 用当前用户权限
rem schtasks /create /tn mysqlbak /tr E:\mysqlbak\mysqlbak.cmd /sc MINUTE
rem 成功: 成功创建计划任务 "mysqlbak"。
 
rem 安装定时任务 一天一次 夜里两点执行
rem schtasks /create /tn mysqlbak02 /tr E:\mysqlbak\mysqlbak.cmd /sc DAILY /st 02:00


rem 删除定时任务 需用管理员权限的CMD执行
rem SCHTASKS /delete /tn mysqlbak

--default-character-set=gbk 不加这个,导出后无法导入

7z.exe的下载和安装
http://www.7-zip.org/

数据库恢复
mysql-5.6.34-winx64\bin\mysql -uroot -pmysql -h localhost mydb  < E:\mysqlbak\data\mydb.sql

猜你喜欢

转载自powertech.iteye.com/blog/2398598