Batch Script Backup for MySQL Windows to Winrar

Make sure mysqldump is set in the environment or use the full path to the program.

@echo off
SET MYSQL_USER=root
SET MYSQL_PASS=yourpassword
SET MYSQL_HOST=localhost
SET WINRAR_PATH="C:\Program Files\WinRAR\WinRAR.exe"

REM Get current date components
FOR /F "tokens=2-4 delims=/ " %%A IN ('date /t') DO (
    SET MONTH=%%A
    SET DAY=%%B
    SET YEAR=%%C
)

REM List of databases to export
SET DATABASES=database1 database2 database3

REM Loop through each database, create a backup, and compress it with WinRAR
for %%D in (%DATABASES%) do (
    echo Exporting database %%D...
    mysqldump -u %MYSQL_USER% -p%MYSQL_PASS% -h %MYSQL_HOST% %%D > %%D_backup_%MONTH%_%DAY%_%YEAR%.sql

    echo Compressing %%D_backup_%MONTH%_%DAY%_%YEAR%.sql...
    %WINRAR_PATH% a -r %%D_backup_%MONTH%_%DAY%_%YEAR%.rar %%D_backup_%MONTH%_%DAY%_%YEAR%.sql

    echo Cleaning up raw SQL file...
    del %%D_backup_%MONTH%_%DAY%_%YEAR%.sql
)

echo Done! Each database backup is compressed into a WinRAR archive.

Leave a Reply