批处理实现mysql数据库备份
为了实现数据库每日自动化备份,我们可以结合windows系统的任务计划,定时运行我们的bat文件,实现每日自动备份。
任务计划也可以用批处理实现,但是本文主要不是讲这个,而且任务计划只要我们手动点一点就行了
实现:
1.首先我们需要新建一个配置文件,我的config.ini,具体内容如下
[FILE_PATH]
mysql_bin=mysql安装路径\bin\
backup_safe_path=备份文件保存的目录
[mysql]
host=127.0.0.1
port=3306
user=root
pwd=""
需要去设置你自己的mysql的bin目录(mysqldump跟mysql命令在里面),以及设置mysql的一些连接信息
2.我们新建一个backup.bat
然后我们需要写一个方法去读取配置文件内容,关于批处理读取配置文件,我就没自己去遭轮子了,我参考了这篇文章
用这个方法前,需要在 @echo off 下面写这句话
SETLOCAL ENABLEDELAYEDEXPANSION
读取配置文件的核心方法
:get_config
for /f "usebackq delims=" %%a in (%1) do (
set content=%%a
if not "!content:~0,1!" == "[" (
for /f "delims=; tokens=1" %%b in ("!content!") do (
set content=%%b
for /f "delims== tokens=1-2" %%i in ("!content!") do (
set key=%%i
set key=!key: =!
set value=%%j
set value=!value: =!
set !key!=!value!
)
)
)
)
goto:eof
用法 get_config 配置文件路径
然后就可以直接把配置里面的键(key)作为变量使用了,例如配置的port=3306,则可以直接用%port%输出
继续
set Ymd=%date:~,4%_%date:~5,2%_%date:~8,2% #获取当前年月日,我们主要是根据日期去备份
set safe_path=%backup_safe_path%%Ymd% #最终保存的路径
md %safe_path% #创建路径
set tmp_file=tmp_db_list.txt #设置临时数据库列表文件,我们需要将要备份的数据库写到临时文件里
(%mysql_bin%mysql --user=%user% --password=%pwd% --host=%host% --port=%port% -e "show databases;") >> %tmp_file%
for /f "usebackq delims=" %%a in (%tmp_file%) do (
if not "%%a" == "" if not "%%a" == "Database" if not "%%a" == "information_schema" if not "%%a" == "test" if not "%%a" == "performance_schema" if not "%%a" == "mysql" (
echo backup start --- %%a
%mysql_bin%mysqldump --user=%user% --password=%pwd% --host=%host% --port=%port% --skip-lock-tables --default-character-set=utf8 --single-transaction --quick %%a > %safe_path%\%%a.sql
echo finished --- %%a
ping /n 3 127.0.0.1 >nul
)
)
del /f /s /q /a %tmp_file%
echo backup is finished,save in %safe_path%
ping /n 3 127.0.0.1 >nul
完成!
然后双击测试一下backup.bat看看能不能备份成功,在mysql5.6及以上会有警告:
Warning: Using a password on the command line interface can be insecure
,在命令行接口使用密码登录不太安全,不影响使用。
3.建立windows任务计划,让批处理每天工作
右键计算机->管理->系统工具->任务计划程序->任务计划程序库
右键新建创建基本任务,填写名称个描述(这个随便你喜欢怎么填),下一步
触发器选每天,下一步
填写每天执行bat的时间,我的是凌晨3点,每隔一天发生一次,下一步
选择启动程序,按浏览找到backup.bat,参数就不用填写了,下一步
勾选完成时打开属性对话框(主要还有东西要改),不勾选也行,你要右键刚刚新建的任务计划然后按“属性”,修改以下
然后按确定就行了
需要完整文件的在这里下载