在Windows中转储本地MySQL数据库,在输出时压缩并使其成为日常任务

时间:2013-12-03 17:22:28

标签: windows mysqldump

我使用GNU / Linux非常好,但是在Windows上我很糟糕。

使用mysqldump转储本地数据库,压缩结果,给它一个增量名称并使其成为一个cron任务对我来说这是一个非常简单的任务。

但是在Windows上,我没有任何线索。我想使用任务工具制作.bat脚本或Windows脚本。压缩结果并在PC中为其命名。我使用Wamp作为服务器,我不能使用GNU / Linux,因为我的老板不想要它。

谷歌没有给我任何好的答案。

如何在带有Wamp的Windows 7上使用我的愿望特性进行良好的自动化任务?

2 个答案:

答案 0 :(得分:2)

这就是我的所作所为。

我首先运行mysqldump以使用当前日期获取.sql文件。 接下来我运行此脚本来压缩它并将其移动到另一个文件夹中。您可以将这两个步骤结合起来,但我将在此处作为单独的脚本发布,以说明:

@echo off

set sourceDir=C:\mysql\mysqldump
set targetDir="C:\Users\Admin\Google Drive\mysql-backup"


@echo on

7z a %targetDir%\backup-%date:~-7,2%.7z %sourceDir%\backup-%date:~-7,2%.sql

@echo off

确保在Windows计算机上安装了7z程序。

答案 1 :(得分:0)

最后我自己在VBS中做到了:

Rem Plan de trabajo:
Rem 1. Dumpear la base de datos en un archivo.
Rem 2. Renombrar el archivo a uno con la fecha del dia en el nombre.
Rem 3. Comprimir el archivo con Compact
Rem 4. Borrar el archivo no comprimido.
Rem 5. Mover el archivo comprimido a la carpeta c:\Users\jvalenzuela\Documents\backups

Rem Lo que hace el script

Rem Le decimos que es un shell
Dim WshShell, oExec
Set WshShell            = WScript.CreateObject("WScript.Shell")

Rem Agarramos la fecha 
CurrentDate             = Date
Rem Le damos formato a la fecha
Fecha                   = FormatDateTime(CurrentDate, vbShortDate)
Rem le decimos cual es el directorio de backup
BackupDir               = "C:\Users\jvalenzuela\Documents\backups"
Rem Le damos la ubicación de mysqldump
MySQLDump               = "C:\wamp\bin\mysql\mysql5.6.12\bin\mysqldump.exe"
Rem  formateamos el nombre del respaldo
NombreDump              = BackupDir & "\backup." & Fecha & ".sql"

Rem y le damos argumentos
MySqlDumpArguments      = "-uroot --result-file=""" & NombreDump & """ --all-databases"

Rem Armamos el comando
comandoFinal            =  MySqlDump & " " & MySqlDumpArguments

Rem Y lo ejecutamos
set oExec = WshShell.Exec(comandoFinal)

Rem vemos si resultó el respaldo
if oExec.Status = 0 Then
        WshShell.Run "compact  /c " & NombreDump 
Rem y si no resultó, lo registramos como error en el visosr de sucesos
Else
        WshShell.LogEvent 1, "No se relizó el respaldo de base de datos del día"
End If

Rem este script no tiene poderes de super vaca

并将其添加到任务计划程序。玩得开心!