【问题标题】:How to schedule a MySQL database backup of one table per file in Windows?如何在 Windows 中为每个文件安排一个表的 MySQL 数据库备份?
【发布时间】:2018-10-27 13:37:46
【问题描述】:

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

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

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

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

【问题讨论】:

  • mysqldump -T [dir_name] 选项不适合您吗?你得到单独的结构(.sql)和数据(.txt)文件,但仍然很容易导入......

标签: mysql batch-file scheduled-tasks backup


【解决方案1】:

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

@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

【讨论】:

  • Neha -- 这还不够吗? (我想知道为什么迟到的赏金。)
  • 我想指出%%table的索引参数名称在循环中是无效的,因为循环参数名称必须是单个字符。因此使用 %%t 而不是 %%table。我在 Windows Server 2016 上确认了这一点。也许其他版本的 Windows 允许更长的参数名称?
  • @Vincent 感谢您指出这一点 - 以前没有遇到过这个问题,也不确定它适用于哪个 Windows 版本(在 2018 年对我有用,猜测是在 Windows 8.1 上)。现在已更新答案以改用%%t
【解决方案2】:

由于您没有指出所提供的答案有什么问题,这里有一个类似的答案,(请注意这是完全未经测试的)

@Echo Off
Rem modify as necessary
Set "buDest=C:\backup\database"
Set "dbName=db"
Set "dbPass=root"
Set "dbUser=root"
Rem If binaries are not in %CD% or %PATH% modify the Set line below
Rem     Example: Set "sqlBin=C:\Program Files\MySQL\MySQL Server 5.5\bin"
Set "sqlBin=."

Set "dStamp="
For /F "Tokens=1-3 Delims=/ " %%A In ('RoboCopy/NJH /L "\|" Null') Do If Not Defined dStamp Set "dStamp=%%A_%%B_%%C"

If Not Exist "%buDest%\" MD "%buDest%" 2>Nul || Exit /B

"%sqlBin%\mysql" --user=%dbUser% --password=%dbPass% -D %dbName% -Bse "Show Tables";|^
 For /F "Skip=3 Delims=| " %%A In ('FindStr "^|"') Do (
    mysqldump --user=%dbuser% --password=%dbpass% %%A >"%buDest%\%dbName%-%%A-%dStamp%.sql")

只要确保行3456 和可能的9 上的值数据根据需要进行修改

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-18
    相关资源
    最近更新 更多