windows环境下 定时自动备份Mysql数据库
思路:
使用windows的任务计划程序定时调用bat批处理文件进行自动备份MySql数据库。
1、先准备bat文件
@echo off
set yyyy=%date:~,4%
set mm=%date:~5,2%
set dd=%date:~8,2%
if /i %time:~0,2% lss 10 set hh=0%time:~1,1%
if /i %time:~0,2% geq 10 set hh=%time:~0,2%
set mn=%time:~3,2%
set ss=%time:~6,2%
set date=%yyyy%%mm%%dd%
set time=%hh%%mn%%ss%
set filename=%date%_%time%
"C:\Program Files\MySQL\MySQL Server 5.7\bin\mysqldump">mysqldump --opt -P3306 -u root --password=root ju >c:/ju_%filename%.sql
"C:\Program Files\MySQL\MySQL Server 5.7\bin\mysqldump">mysqldump --opt -P3306 -u root --password=root mytest >c:/mytest_%filename%.sql
@echo on
@pause
其中
-u 表示要登录的用户名称
--password= 用来设置密码
mytest 为 数据库名称
c:/mytest_.sql 为最终生成的文件及对应路径
-h127.0.0.1 指定ip地址
-P3341 指定端口
2、创建任务
控制面板》管理工具》任务计划程序》创建任务
任务主要填写
常规:
名称
勾选》不管用户是否登录都要运行
勾选》使用最高权限运行
触发器:
新建一个,选择好时间就行
操作:
新建一个,选中上面准备好的bat文件。
附录:批处理文件的注释方式
写bat批处理也一样,都要用到注释的功能,这是为了程式的可读性
在批处理中,段注释有一种比较常用的方法:
goto start
= 可以是多行文本,可以是命令
= 可以包含重定向符号和其他特殊字符
= 只要不包含 :start 这一行,就都是注释
:start
另外,还有其他各种注释形式,比如:
1、:: 注释内容(第一个冒号后也可以跟任何一个非字母数字的字符)
2、rem 注释内容(不能出现重定向符号和管道符号)
3、echo 注释内容(不能出现重定向符号和管道符号)〉nul
4、if not exist nul 注释内容(不能出现重定向符号和管道符号)
5、:注释内容(注释文本不能与已有标签重名)
6、%注释内容%(可以用作行间注释,不能出现重定向符号和管道符号)
7、goto 标签 注释内容(可以用作说明goto的条件和执行内容)
8、:标签 注释内容(可以用作标签下方段的执行内容)
附录:一个调试定时任务的bat
往aaa.txt文件写入文字
@echo off
set yyyy=%date:~,4%
set mm=%date:~5,2%
set dd=%date:~8,2%
if /i %time:~0,2% lss 10 set hh=0%time:~1,1%
if /i %time:~0,2% geq 10 set hh=%time:~0,2%
set mn=%time:~3,2%
set ss=%time:~6,2%
set date=%yyyy%%mm%%dd%
set time=%hh%%mn%%ss%
set filename=%date%_%time%
@echo yyyyMMdd>c:\aaa.txt %创建文件aaa并写入yyyymmdd%
@echo HHmmss>>c:\aaa.txt %在文件aaa追加文字hhmmss%
@echo %filename%>>c:\aaa.txt
@echo on
@pause