2013-10-17 123 views
1

我最近遇到了問題,我的硬盤崩潰了!xampp windows 8上的自動mysql備份?

我的硬盤上的「F:\ xampp \ mysql \ data \ ibdata1」ibdata1文件損壞!

文件大小爲8 GB,但當我試圖複製6 GB後,它顯示冗餘檢查錯誤!

我最近安裝了新的xampp安裝,只是想知道是否有任何方法可以創建文件的自動備份,如webhosting服務提供商。

任何幫助將不勝感激。

回答

1

我使用調用mysqldump並由Windows任務計劃程序按計劃執行的批處理文件。

首先你需要創建一個批處理文件。打開一個新的文本文件,幷包含類似的東西。將其保存爲.BAT。你必須更新你的MySQL bin的位置。在第一行。這應該是在你的xamppfiles directory.Then在mysqldump命令

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 

包括適當的MySQL用戶名,數據庫名和密碼,然後你只需要計劃使用Windows任務調度此批處理文件。下面是解釋這爲W7和W8的文章:

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

2

延長的答案,你可以使用下面(的XAMPP或其他MySQL配置)腳本。在創建bat文件後,它可以設置爲Windows Scheduler作爲例如每週任務。

這個腳本會創建一個像C文件:\備份\ db1-2014-03-27.sql根據日期

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 
0

只是爲了延長多一點給出答案,以防有人想要爲生成的備份文件名添加時間。

使用此:https://stackoverflow.com/a/19741875

我們可以建立以下批處理文件:

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