✅ 步骤 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:运行脚本
- 右键点击
backup_each_db.bat→ 以管理员身份运行 - 脚本会自动:
- 列出所有数据库
- 跳过系统库(
mysql,sys,information_schema,performance_schema) - 每个数据库备份为
数据库名.sql,例如:myshop.sqlblog.sqltest.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











暂无评论内容