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计划任务

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

创建任务

新建触发器

新建操作

运行任务即可。

posted on   sumlen  阅读(1166)  评论(0编辑  收藏  举报

编辑推荐:
· 为什么 .NET8线程池 容易引发线程饥饿
· golang自带的死锁检测并非银弹
· 如何做好软件架构师
· 记录一次线上服务OOM排查
· Linux实时系统Xenomai宕机问题的深度定位过程
阅读排行:
· 2025年广告第一单,试试这款永久免费的开源BI工具
· o3 发布了,摔碎了码农的饭碗
· SQL优化的这15招,真香!
· [.NET] API网关选择:YARP还是Ocelot?
· 将 EasySQLite 从 .NET 8 升级到 .NET 9

导航

< 2025年1月 >
29 30 31 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31 1
2 3 4 5 6 7 8
点击右上角即可分享
微信分享提示