You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows环境下如何按单表文件计划MySQL数据库备份?

实现MySQL 5.5单表单文件每日备份

没问题!要把你的备份从整库单文件改成单表单文件,只需要在批处理里加个循环逻辑,先获取数据库里的所有表名,再逐个导出就行。我帮你调整了脚本,还修复了原脚本里的一个小细节(原脚本里-u root-proot应该是-u root -proot,用户名和密码参数之间的空格不能丢哦):

@echo off
setlocal enabledelayedexpansion

:: 配置备份相关参数
set DB_USER=root
set DB_PASS=proot
set DB_NAME=db
set BACKUP_BASE_PATH=C:\backup\database
set DATE_STR=%date:~4%
set FILE_DATE=!DATE_STR:/=_!

:: 确保备份目录存在,不存在则自动创建
if not exist "%BACKUP_BASE_PATH%" mkdir "%BACKUP_BASE_PATH%"
if not exist "%BACKUP_BASE_PATH%\%FILE_DATE%" mkdir "%BACKUP_BASE_PATH%\%FILE_DATE%"

:: 查询数据库内所有表名,保存到临时文件(-N参数去掉表头,只留表名)
mysql -u%DB_USER% -p%DB_PASS% -N -e "SHOW TABLES FROM %DB_NAME%" > "%BACKUP_BASE_PATH%\temp_tables.txt"

:: 循环遍历每个表,逐个导出为单独文件
for /f "tokens=*" %%t in (%BACKUP_BASE_PATH%\temp_tables.txt) do (
    echo 正在备份表:%%t
    mysqldump -u%DB_USER% -p%DB_PASS% %DB_NAME% %%t > "%BACKUP_BASE_PATH%\%FILE_DATE%\db_%%t_%FILE_DATE%.sql"
)

:: 清理临时表名文件
del "%BACKUP_BASE_PATH%\temp_tables.txt"

echo 所有表备份完成!备份存储路径:%BACKUP_BASE_PATH%\%FILE_DATE%
endlocal

关键细节说明:

  • enabledelayedexpansion:启用延迟变量扩展,避免日期格式处理时出现变量解析异常
  • 按日期创建子目录:每个表的备份文件会归类到当日的子文件夹中,比如C:\backup\database\2024_05_20\db_users_2024_05_20.sql,方便后续查找和管理
  • 如果你的mysql/mysqldump命令不在系统PATH环境变量里,记得把命令改成完整安装路径,比如"C:\Program Files\MySQL\MySQL Server 5.5\bin\mysql.exe"

额外优化建议:

  • 密码安全优化:明文写密码在脚本里有风险,你可以创建一个my.ini配置文件(放在脚本同目录),内容如下:
    [mysqldump]
    user=root
    password=proot
    
    然后把脚本里的-u%DB_USER% -p%DB_PASS%替换成--defaults-extra-file=my.ini,避免密码暴露
  • 自动清理旧备份:可以添加命令自动删除N天前的备份,防止磁盘空间被占满,比如用forfiles命令删除7天前的备份目录:
    forfiles /p "%BACKUP_BASE_PATH%" /s /m *.* /d -7 /c "cmd /c rd /s /q @path"
    
  • 备份日志记录:把备份过程输出到日志文件,方便排查问题,比如在脚本末尾添加:
    echo %date% %time% - 每日备份执行完成 >> "%BACKUP_BASE_PATH%\backup_history.log"
    

调整好脚本后,你还是像之前一样把它添加到Windows任务计划里,就能实现每日自动单表备份啦!

内容的提问来源于stack exchange,提问作者Neha Shettar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 04:17:38