在http://kmsoft.landui.com:81/备份数据库批处理.rar中,使用的是winrar直接压缩mysql数据库的data目录进行备份。
这样做有几个坏处:
1.需要暂停mysql服务,使没有文件被占用,确保能正常压缩。
2.对于myisam存储的数据库,所有的数据内容都在数据库名对应的文件夹里面。但是对于innodb存储的数据库,在数据库名对应文件夹中只存储了表结构,表的内容是存储在ibdata1中的。这样在进行恢复时候则需要把所有文件都覆盖(包括ibdata1文件)这样就会导致所有数据库都被还原到覆盖后的时间点。
3.部分设置的ibdata1文件没有和数据库目录在同一文件夹,导致压缩备份没有备份到ibdata1文件,最终使得innodb存储的数据库无法恢复,没有达到备份的目的。
基于以上三个原因一般使用导出备份方式。
脚本文件:MySQLBackups.zip
如上图
修改dbPassword为服务器的root密码
backupDir为需要备份到的目录
mysqldump路径为mysqldump.exe路径(可以复制当前数据库安装目录下的mysqldump.exe进行使用)mysqlDataDir设置为mysql数据库的data目录路径
zip为7za.exe的路径(用于打包压缩sql文件)
修改无误后cmd切换到MySqlBackup.bat并执行以下MySqlBackup.bat文件,看导出和压缩文件是否正常生成,无误后设置任务计划定时运行MySqlBackup.bat即可。