win2003下如何自动备份MySQL数据库

admin1 文章资讯 2020-03-29 616 0

有网友问我在win2003下如何自动备份MySQL数据库,既然是自动备份,那肯定得写脚本。我想了想,这个并不是很困难,是很容易实现的,备份可以用脚本实现,那自动又该如何实现呢?也很简单,就用windows自带的“任务计划”功能,设定一个时间,让系统定时跑脚本,不就实现了自动备份数据库的功能了吗?首先把脚本代码贴出来:

  1. @echo on  

  2. REM------------------------backup bugdb which is InnoDB-----------------------------  

  3. del F:\backup\website\bugdb_*.sql  

  4. cd F:\usr\wamp\mysql\bin  

  5. set year=%date:~0,4%  

  6. set month=%date:~5,2%  

  7. set day=%date:~8,2%  

  8. set filename=bugdb_%year%%month%%day%.sql  

  9. mysqldump.exe bugdb -uroot -p123456 > F:\backup\website\%filename%  

  10. @echo off

依次解释一下每句代码的意思:

  • 第四行:删除指定目录下的文件名包含有“bugdb_”字样的sql文件。因为这个代码是我先前写的,在公司的服务器上每天晚上跑一次。所以每次备份之前,先删除头天已备份成功的文件。

  • 第五行:进入MySQL的bin目录,因为在此目录下有个mysqldump.exe的文件,该文件时MySQL数据库自带的备份和恢复MySQL数据库的工具,这个脚本文件正是用到该工具。

  • 第六行:取当前系统日期的年份,以四位数字表示,如2010。

  • 第七行:取当前系统日期的月份,以两位数字表示,如03。

  • 第八行:取当前系统日期的日期,以两位数字表示,如12。

  • 第九行:定义备份文件名,最终的文件名以bugdb_20100312.sql形式存在,即文件名加日期的形式。

  • 第十行:执行备份。

再来解释一下mysqldump的语法格式。格式为:

  1. mysqldump.exe "要备份的数据库名" -u(接用户名) -p(接密码) > "备份文件存放的路径及文件名"

其中“>”的作用是输出重定向,即把mysqldump.exe备份的数据输出到一个文件里并保存。

将以上脚本复制到一个文本文件里,并另存为*.bat,如backup.bat的批处理文件,接下来会要用到该文件,我把它存在D:\scripts\backup_bugdb.bat。

打开“控制面板”里的“任务计划”,新建一个计划任务:

  

在“运行”里面通过浏览按钮找到刚保存的backup.bat批处理文件,在“计划”选项卡和“设置”选项卡里根据自己的实际需要进行设定,设置完毕后点“确定”进行保存该任务。接下来系统会在指定的时间里周期性地运行此脚本,从而达到自动备份数据库的目的。

  

另外附上还原数据库的命令:

  1. D:\html\wamp\mysql\bin\mysql.exe -uroot -p123456

  2. --default-character-set=utf8 bugdb < F:\bugdb_20100312.sql

备份MySQL数据库的命令

mysqldump -hhostname -uusername -ppassword databasename > backupfile.sql

备份MySQL数据库为带删除表的格式
备份MySQL数据库为带删除表的格式,能够让该备份覆盖已有数据库而不需要手动删除原有数据库。

mysqldump -–add-drop-table -uusername -ppassword databasename > backupfile.sql

直接将MySQL数据库压缩备份

mysqldump -hhostname -uusername -ppassword databasename | gzip > backupfile.sql.gz

备份MySQL数据库某个(些)表

mysqldump -hhostname -uusername -ppassword databasename specific_table1 specific_table2 > backupfile.sql

同时备份多个MySQL数据库

mysqldump -hhostname -uusername -ppassword –databases databasename1 databasename2 databasename3 > multibackupfile.sql

仅仅备份数据库结构

mysqldump –no-data –databases databasename1 databasename2 databasename3 > structurebackupfile.sql

备份服务器上所有数据库

mysqldump –all-databases > allbackupfile.sql

还原MySQL数据库的命令

mysql -hhostname -uusername -ppassword databasename < backupfile.sql

还原压缩的MySQL数据库

gunzip < backupfile.sql.gz | mysql -uusername -ppassword databasename

将数据库转移到新服务器

mysqldump -uusername -ppassword databasename | mysql –host=*.*.*.* -C databasename


版权免责声明

星缘源码城,所有资源全部来源于网络整理,本站目地只是为了提供给网友学习研究任何人以任何方式架设运营或出现任何法律问题都与本站无关,如同意观点请下载,如不同意请离开!星辰源码城特此声明!

分享:

扫一扫在手机阅读、分享本文