首页 > 解决方案 > 如何在 Windows 中为每个文件安排一个表的 MySQL 数据库备份?

问题描述

我正在使用 MySQL Server 5.5,需要安排每日数据库备份。我目前在批处理文件中执行以下操作:

set currdate=%date:~4%
Set FileDate=%currdate:/=_%

mysqldump -u root-proot db > "C:\backup\database\db%FileDate%.sql"

它将所有表导出到一个文件中。我想为每个表导出一个文件。

标签: mysqlbatch-filescheduled-tasksbackup

解决方案


下面首先将所有表名输出到一个临时文件,然后遍历它们,将每个表名转储到一个适当命名的文件中:

@echo off
set currdate=%date:~4%
set filedate=%currdate:/=_%
mysql --skip-column-names -u root -proot db -e "show tables;" > tables.tmp
for /f "skip=3 delims=|" %%t in (tables.tmp) do (
  mysqldump -u root -proot db %%t > "C:\backup\database\db_%%table_%filedate%.sql"
)
del tables.tmp

推荐阅读