Windows批处理方式实现MySQL定期自动备份多个数据库


@title MySQL backup start
@echo off
setlocal enabledelayedexpansion
@color 0a
:: --------------------参数设置------------------------
:: 设置时间变量
set "Ymd=%date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2%"
:: 要备份的数据库名称,多个用空格分隔
set DATABASES=database1 database2
:: HOST IP
set HOST=127.0.0.1
:: PROT 端口
set PROT=3306
:: MySQL 用户名
set USERNAME=root
:: MySQL 密码
set PASSWORD=123456
:: MySQL Bin 目录,加 \
:: 如果可以直接使用 mysqldump(安装时添加 MySQL Bin 目录到了环境变量),此处留空即可  D:\Java\mysql\bin\
set MYSQL=
:: WinRAR 自带命令行工具的可执行文件路径,长文件名注意用 Dos 长文件名书写方式
set WINRAR=C:\Progra~1\WinRAR\Rar.exe
:: 备份天数
set DT=30
:: 备份放置的盘,加 \
set BACKUP_PATH=D:\
:: 备份放置的路径,加 \
set FILE=Backup\
:: --------------------开始备份------------------------
for %%D in (%DATABASES%) do (
     if exist %BACKUP_PATH%%FILE%%%D (
        echo 目录%BACKUP_PATH%%FILE%%%D已存在,无需创建
    ) else (
        echo 创建%BACKUP_PATH%%FILE%%%D        
        md %BACKUP_PATH%%FILE%%%D
    )
    :: 删除
    forfiles /p "%BACKUP_PATH%%FILE%%%D" /m %%D_*.sql -d -%DT% /c "cmd /c del /f @path"
    cd %MYSQL%
    :: 备份
    mysqldump --opt --single-transaction=TRUE --user=%USERNAME% --password=%PASSWORD% --host=%HOST% --protocol=tcp --port=%PROT% --default-character-set=utf8 --single-transaction=TRUE --routines --events "%%D" > %BACKUP_PATH%%FILE%%%D\%%D_%Ymd%.sql
)
:: --------------------结束备份------------------------
@echo on

新建一个批处理文件,如:mysql_backup_tool.bat,文件内容如上:

创建Windows计划任务

开始菜单找到任务计划程序并打开。

创建任务

新建触发器

新建操作

运行任务即可。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM