我最近遇到问题,我的硬盘坏了!
我硬盘中“F:\xampp\mysql\data\ibdata1”的 ibdata1 文件损坏了!
文件大小为 8 GB,但当我尝试在 6 GB 后复制时,它显示冗余检查错误!
我最近安装了新的 xampp 安装,只是想知道它是否有任何方法可以像虚拟主机服务提供商那样创建文件的自动备份。
任何帮助都感激不尽。
要扩展答案,您可以使用下面的脚本(用于 XAMPP 或其他 mysql 配置)。创建 bat 文件后,可以在Windows Scheduler中将其设置为例如每周任务。
该脚本将根据日期创建C:\backups\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
只是为了扩展给定的答案,以防有人想为生成的备份文件名添加时间。
使用这个: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
我使用一个调用 mysqldump 并由 Windows 任务计划程序按计划执行的批处理文件。
首先,您需要创建一个批处理文件。打开一个新的文本文件并包含与此类似的内容。将其保存为 .BAT。您必须更新 MySQL bin 的位置。在第一行。这应该在您的 xamppfiles 目录中。然后在 mysqldump 命令中包含正确的 mysql 用户名、数据库名和密码
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
然后您只需要使用 Windows 任务计划程序来计划这个批处理文件。这是一篇针对 W7 和 W8 解释这一点的文章:
http://www.thewindowsclub.com/how-to-schedule-batch-file-run-automatically-windows-7