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计划任务
开始菜单找到任务计划程序并打开。
创建任务
新建触发器
新建操作
运行任务即可。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】博客园携手 AI 驱动开发工具商 Chat2DB 推出联合终身会员
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 为什么 .NET8线程池 容易引发线程饥饿
· golang自带的死锁检测并非银弹
· 如何做好软件架构师
· 记录一次线上服务OOM排查
· Linux实时系统Xenomai宕机问题的深度定位过程
· 2025年广告第一单,试试这款永久免费的开源BI工具
· o3 发布了,摔碎了码农的饭碗
· SQL优化的这15招,真香!
· [.NET] API网关选择:YARP还是Ocelot?
· 将 EasySQLite 从 .NET 8 升级到 .NET 9