Vitthal Roonwal
Vitthal Roonwal

Reputation: 11

Automatic mysql backup on xampp windows 8?

I recently got in problem, my hard disk got crashed!

ibdata1 file at "F:\xampp\mysql\data\ibdata1" in my hard disk got corrupt!

The file size was 8 gb but when I was trying to copy after 6 gb it was showing redundancy check error!

I recently installed new xampp installation, just wondering if there is any way that it create automatic backup of files like webhosting service provider does.

Any help will be much appreciated.

Upvotes: 1

Views: 11112

Answers (3)

Spyros El.
Spyros El.

Reputation: 423

Just to extend a little more the given answers in case anyone wants to add time to the generated backup filenames.

Using this: https://stackoverflow.com/a/19741875

We can build the following batch file:

FOR /f %%a IN ('WMIC OS GET LocalDateTime ^| FIND "."') DO SET DTS=%%a
SET date=%DTS:~0,8%-%DTS:~8,6%

C:\xampp\mysql\bin\mysqldump.exe db1 -h localhost -u user1 -pPassWord1 > C:\backups\db1-%date%.sql
C:\xampp\mysql\bin\mysqldump.exe db2 -h localhost -u user2 -pPassWord2 > C:\backups\db2-%date%.sql

Upvotes: 1

Evalds Urtans
Evalds Urtans

Reputation: 6694

To extend answer you could use script below (for XAMPP or other mysql configuration). After creating bat file it can be set up in Windows Scheduler as weekly task for example.

This script would create files like C:\backups\db1-2014-03-27.sql depending on date

mysqldumper.bat

FOR /F "TOKENS=1* DELIMS= " %%A IN ('DATE/T') DO SET CDATE=%%B
FOR /F "TOKENS=1,2 eol=/ DELIMS=/ " %%A IN ('DATE/T') DO SET mm=%%B
FOR /F "TOKENS=1,2 DELIMS=/ eol=/" %%A IN ('echo %CDATE%') DO SET dd=%%B
FOR /F "TOKENS=2,3 DELIMS=/ " %%A IN ('echo %CDATE%') DO SET yyyy=%%B
SET date=%yyyy%-%mm%-%dd%

C:\xampp\mysql\bin\mysqldump.exe db1 -h localhost -u user1 -pPassWord1 > C:\backups\db1-%date%.sql
C:\xampp\mysql\bin\mysqldump.exe db2 -h localhost -u user2 -pPassWord2 > C:\backups\db2-%date%.sql

Upvotes: 3

JRam
JRam

Reputation: 529

I use a batch file that calls mysqldump and is executed on a schedule by Windows Task Scheduler.

First you need to create a batch file. Open a new text file and inlclude something similar to this. Save it as a .BAT. You have to update the location of your MySQL bin. on the first line. This should be in your xamppfiles directory.Then include the proper mysql user name, database name and password in the mysqldump command

REM Export all data from this database
cd C:\Program Files\MySQL\MySQL Server 5.6\bin

REM To export to file (structure only)
mysqldump --no-data [DATABASENAME] -h localhost -u [USER] -p[PASSWORD] > C:\databackup\database_ddl_backup.sql
mysqldump --no-create-info --no-create-db [DATABASENAME] -h localhost -u [USER] -p[PASSWORD] > C:\databackup\database_data.sql

Then you just have to schedule this batch file using Windows Task Scheduler. Here is an article that explains this for W7 and W8:

http://www.thewindowsclub.com/how-to-schedule-batch-file-run-automatically-windows-7

Upvotes: 1

Related Questions