windows环境下批量备份数据库

windows环境下批量备份数据库

✅ 步骤 1:创建备份脚本 backup_each_db.bat

新建一个文本文件,命名为 backup_each_db.bat,内容如下:

@echo off
set MYSQL_USER=root
set MYSQL_PASS=123456
set BACKUP_DIR=D:\backup
set MYSQLDUMP="C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqldump.exe"

:: 创建备份目录
if not exist "%BACKUP_DIR%" mkdir "%BACKUP_DIR%"

:: 获取数据库列表(排除系统库)
for /f "skip=1" %%i in ('mysql -u%MYSQL_USER% -p%MYSQL_PASS% -e"SHOW DATABASES;"') do (
    set "db=%%i"
    setlocal enabledelayedexpansion
    if "!db!" neq "information_schema" if "!db!" neq "performance_schema" if "!db!" neq "mysql" if "!db!" neq "sys" (
        echo 正在备份数据库: !db!
        %MYSQLDUMP% -u%MYSQL_USER% -p%MYSQL_PASS% --single-transaction --set-gtid-purged=OFF "!db!" > "%BACKUP_DIR%\!db!.sql"
        if !errorlevel! equ 0 (
            echo   ✅ !db!.sql 备份成功
        ) else (
            echo   ❌ !db!.sql 备份失败
        )
    )
    endlocal
)

echo.
echo 所有数据库备份完成!
pause

✅ 步骤 2:修改参数(根据你的实际情况)

请根据你的环境修改以下几项:

参数 说明 示例
MYSQL_USER MySQL 用户名 root
MYSQL_PASS MySQL 密码(⚠️ 明文,注意安全) your_password
BACKUP_DIR 备份目录 D:\backup
MYSQLDUMP mysqldump.exe 的完整路径 "C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqldump.exe"

💡 提示:如何找到 mysqldump.exe
通常在:C:\Program Files\MySQL\MySQL Server X.X\bin\mysqldump.exe
你可以在这个目录下搜索 mysqldump.exe


✅ 步骤 3:运行脚本

  1. 右键点击 backup_each_db.bat → 以管理员身份运行
  2. 脚本会自动:
    • 列出所有数据库
    • 跳过系统库(mysqlsysinformation_schemaperformance_schema
    • 每个数据库备份为 数据库名.sql,例如:
      • myshop.sql
      • blog.sql
      • test.sql

✅ 备份结果示例

D:\backup\
├── myshop.sql
├── blog.sql
├── test.sql
└── ...

每个文件都是一个独立的数据库备份,恢复时也更方便:

mysql -u root -p myshop < D:\backup\myshop.sql

✅ 可选:添加时间戳(每天多个备份不冲突)

如果你想每次备份都带时间戳,避免覆盖,可以修改文件名:

set TIMESTAMP=%date:~0,4%%date:~5,2%%date:~8,2%_%time:~0,2%%time:~3,2%%time:~6,2%
set TIMESTAMP=%TIMESTAMP: =0%

然后改为:

> "%BACKUP_DIR%\!db!_%TIMESTAMP%.sql"

这样文件名变成:myshop_20250818_153022.sql

我是为了升级本地mysql所以这样做的,如果是linux,让ai把命令转shell就好了。散会!

温馨提示: 本文最后更新于2025-08-18 14:43:52,某些文章具有时效性,若有错误或已失效,请在下方 留言
© 版权声明
THE END
喜欢就支持一下吧
点赞9赞赏 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容