Skip to content

Instantly share code, notes, and snippets.

@anish137i
Forked from sindresorhus/mysql-backup-windows.bat
Last active November 17, 2017 05:09
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save anish137i/e2c662ac84072702bde34fe431b7eb2c to your computer and use it in GitHub Desktop.
Save anish137i/e2c662ac84072702bde34fe431b7eb2c to your computer and use it in GitHub Desktop.
Backup MySQL databases in separate gzipped sql files on Windows
@echo off
REM Following Script will fow on Windows 10
REM Design to take XAMPP MYSQL Backup
REM LAST UPDATE on 17-11-2017
set dbUser=root
set dbPassword=
set backupDir="E:\Backup\"
set mysqldump="E:\xampp\mysql\bin\mysqldump.exe"
set mysqlDataDir="E:\xampp\mysql\data"
set zip="C:\Program Files\7-Zip\7z.exe"
:: get date
for /F "tokens=1-3 delims=- " %%i in ('date /t') do (
set dd=%%i
set mon=%%j
set yy=%%k
)
:: get time
for /F "tokens=5-8 delims=:. " %%i in ('echo.^| time ^| find "current" ') do (
set hh=%%i
set min=%%j
)
echo dirName=%yy%%mon%%dd%_%hh%%min%
set dirName=%yy%%mon%%dd%_%hh%%min%
:: switch to the "data" folder
pushd %mysqlDataDir%
:: iterate over the folder structure in the "data" folder to get the databases
for /d %%f in (*) do (
if not exist %backupDir%\%dirName%\ (
mkdir %backupDir%\%dirName%
)
%mysqldump% --host="localhost" --user=%dbUser% --password=%dbPassword% --single-transaction --add-drop-table --databases %%f > %backupDir%\%dirName%\%%f.sql
%zip% a -tgzip %backupDir%\%dirName%\%%f.sql.gz %backupDir%\%dirName%\%%f.sql
del %backupDir%\%dirName%\%%f.sql
)
popd
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment