mysql - 如何在 Windows 中安排每个文件一个表的 MySQL 数据库备份?

标签 mysql batch-file scheduled-tasks backup

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

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

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

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

最佳答案

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

@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

关于mysql - 如何在 Windows 中安排每个文件一个表的 MySQL 数据库备份?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50388835/

相关文章:

mysql - 可以改革列的表结构吗?

用于在应用程序启动前检查目录的 Windows 批处理文件

php - 我如何将其转换为 mysqli

mysql - 向MySql插入数据并在datagridview中显示

windows - 如何将文件从一个文件夹复制到另一个文件夹(需要文件夹合并和文件覆盖存在)

java - 有没有比quartz更好的方法在JAVA中运行批处理

linux - 安排作业从 ftp 下载文件

scheduled-tasks - Sitecore清理代理和数据库清理

mysql - 使用 MySQL 驱动程序问题交叉编译 Qt5 (Mingw)

java - 批处理文件在执行 Java 程序后立即终止(如果从另一个 Java 程序调用批处理文件)