卜笑 发表于 2025-6-12 13:43:17

Windows下备份所有mysql数据库

Windows下备份所有mysql数据库

目标


[*]基于mysqldump进行数据库的备份
[*]自动获取所有的数据库并分文件夹进行备份保存
[*]自动检测7zip并进行压缩存放
[*]自动清理90天之前的数据备份
以下是基于bat的完整代码

@echo off
REM REM MySQL配置
set MYSQL_PATH="C:\Program Files\MySQL\MySQL Server 8.1\bin\mysqldump.exe"
set DB_USER=root
set DB_PASS=sa123!SA
set BACKUP_ROOT=D:\backData

REM REM 生成时间戳(格式:YYYYMMDD_HHmmss)
set TIMESTAMP=%DATE:~0,4%%DATE:~5,2%%DATE:~8,2%_%TIME:~0,2%%TIME:~3,2%%TIME:~6,2%
set TIMESTAMP=%TIMESTAMP: =0%

REM REM 获取数据库列表(排除系统库)
for /f "usebackq skip=1 tokens=*" %%d in (`mysql -u%DB_USER% -p%DB_PASS% -e "SHOW DATABASES;"`) do (
    set "db=%%d"
    if not "%%d"=="information_schema" (
      if not "%%d"=="mysql" (
            if not "%%d"=="performance_schema" (
                if not "%%d"=="sys" (
                  REM == 动态生成专属备份目录 ==
                  REM 此处别用set会导致变量不更新的问题
                  REM set "BACKUP_DIR=%BACKUP_ROOT%\%%d"

                  if not exist %BACKUP_ROOT%\%%d (
                        mkdir %BACKUP_ROOT%\%%d
                  )
                  
                  REM REM 执行分库备份
                  %MYSQL_PATH% --user=%DB_USER% --password=%DB_PASS% %%d > %BACKUP_ROOT%\%%d\%%d_%TIMESTAMP%.sql
                  
                  REM REM 可选:压缩备份文件
                  if exist "C:\Program Files\7-Zip\7z.exe" (
                        "C:\Program Files\7-Zip\7z.exe" a -t7z %BACKUP_ROOT%\%%d\%%d_%TIMESTAMP%.7z %BACKUP_ROOT%\%%d\%%d_%TIMESTAMP%.sql
                        del %BACKUP_ROOT%\%%d\%%d_%TIMESTAMP%.sql

                        forfiles /p "%BACKUP_ROOT%\%%d" /m *.7z /d -90 /c "cmd /c del @path"
                  ) else (
                        forfiles /p "%BACKUP_ROOT%\%%d" /m *.sql /d -90 /c "cmd /c del @path"
                  )
                )
            )
      )
    )
)

REM REM 记录备份日志
echo [%DATE% %TIME%] 分库备份完成 >> %BACKUP_ROOT%\backup.log‍

来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

司寇涵涵 发表于 2025-10-21 23:07:31

不错,里面软件多更新就更好了

仇华乐 发表于 2025-10-27 00:46:49

鼓励转贴优秀软件安全工具和文档!

摹熹 发表于 2025-11-21 06:18:37

分享、互助 让互联网精神温暖你我

肇默步 发表于 2025-12-11 12:27:28

感谢分享

距佰溘 发表于 2025-12-12 00:34:42

这个好,看起来很实用

揿纰潦 发表于 2025-12-21 23:13:04

懂技术并乐意极积无私分享的人越来越少。珍惜

第璋胁 发表于 2026-1-17 16:53:54

这个好,看起来很实用

呵桢 发表于 2026-1-17 23:32:38

收藏一下   不知道什么时候能用到

橘芜 发表于 2026-1-18 00:17:42

前排留名,哈哈哈

窖咎 发表于 2026-1-18 22:17:24

yyds。多谢分享

司空娅玲 发表于 2026-1-22 11:24:58

这个有用。

篁瞑普 发表于 2026-1-22 12:11:51

这个有用。

纪睐讦 发表于 2026-1-23 07:12:51

不错,里面软件多更新就更好了

锺冰洁 发表于 2026-1-23 10:19:49

新版吗?好像是停更了吧。

瞿佳悦 发表于 2026-1-27 17:28:58

感谢,下载保存了

章海 发表于 2026-2-3 07:22:59

很好很强大我过来先占个楼 待编辑

碛物 发表于 2026-2-4 04:50:19

谢谢分享,试用一下

挠溃症 发表于 2026-2-4 05:29:24

感谢分享

锑砖 发表于 2026-2-5 08:12:16

感谢分享,学习下。
页: [1] 2
查看完整版本: Windows下备份所有mysql数据库