编写备份脚本
rem ******MySQL backup start******** @echo off rem 使用set命令来定义一个名为“Ymd”的变量,这个变量的值就是后面的一大串规则,简单说就是当前的日期和时间 set "Ymd=%date:~0,4%%date:~5,2%%date:~8,2%0%time:~1,1%%time:~3,2%%time:~6,2%" rem 选择自动备份的存储路径 set "backupPath=D:\mysqlBAK" rem 找到Mysql的bin目录下的mysqldump文件的路径 set "mysqldumpPath=C:\Program Files\MySQL\MySQL Server 5.5\bin\mysqldump" rem 用户名 set "userName=root" rem 密码 set "password=root" rem 数据库名 set "events=lsj_jso5" "%mysqldumpPath%" --user=%userName% --password=%password% --events "%events%" > "%backupPath%\backup_%Ymd%.sql" rem forfiles 用来对备份目录下的过期备份进行删除。“backup_*.sql”指的是该路径下所有以“backup_”开头,以“.sql”作为后缀的数据库备份文件。而后面的数字“30”表示30天过期。 forfiles /p "%backupPath%" /m backup_*.sql -d -30 /c "cmd /c del /f @path" @echo on rem ******MySQL backup end********
这是一段很常见的windows批处理脚本文件,我来简单解释一下其中的关键部分:
forfiles /p "E:\mysql\MySQL BackUp" /m backup_*.sql -d -30 /c "cmd /c del /f @path"
forfiles 用来对备份目录下的过期备份进行删除。“E:\mysql\MySQL BackUp”是备份文件所在的路径,可以自行修改。“backup_*.sql”指的是该路径下所有以“backup_”开头,以“.sql”作为后缀的数据库备份文件。而后面的数字“30”表示30天过期。
set "Ymd=%date:~0,4%%date:~5,2%%date:~8,2%0%time:~1,1%%time:~3,2%%time:~6,2%"
使用set命令来定义一个名为“Ymd”的变量,这个变量的值就是后面的一大串规则,简单说就是当前的日期和时间
"E:\mysql\MySQL Server 5.6\bin\mysqldump"
这一行命令就是调用MySQL自带的备份工具了,注意这个路径必须写成你自己的“mysqldump.exe”所在的路径,一般都是在MySQL安装路径的/bin目录下。而这一行命令后面紧跟着一大串的参数,我们挑几个重要的来解释:
--user=root
连接MySQL数据库服务的账户,通常该账户必须具备数据库备份操作的权限。为了简便我们使用了root,但是在实际生产环境中并不建议使用root账户,避免账户和密码泄露,从而造成不必要的麻烦。
--password=123456
这是连接MySQL数据库服务的密码
--host=127.0.0.1
这是数据库服务所在的服务器ip地址
--port=3306
这是数据库服务所在的服务器的端口号
--events "yumi_website" > "E:\mysql\MySQL BackUp\backup_%Ymd%.sql"
events参数即实现了将数据库备份到一个指定的文件这一操作。"yumi_website"是需要做备份的数据库,而大于号“>”右边的就是我们的备份文件所保存的服务器目录和文件名了。
设定Windows任务
完成了上述步骤后,我们需要添加Windows计划任务。
右键计算机,点击管理,选择系统工具下的任务计划程序。
打开了任务计划程序之后,我们点击右侧的“创建基本任务”。
然后,我们需要填写任务的名称,以及描述信息:
点击下一步之后,我们需要设定任务的执行频率,我选择的是“每天”:
再次点击“下一步”,设置任务执行的时间,我选择了夜深人静的1点:
在“下一步”中,我们选择“启动程序”:
在之后的对话框中,我们需要选择刚才所编写的批处理文件:
完成这些步骤后,windows会给我们看一下整个任务的概述信息:
确定无误之后,点击“完成”就可以了。此时我们就会看到在Windows的任务列表里,多了一条新的任务: