服务器之家:专注于服务器技术及软件下载分享
分类导航

Mysql|Sql Server|Oracle|Redis|

服务器之家 - 数据库 - Mysql - 用批处理实现自动备份和清理mysql数据库的代码

用批处理实现自动备份和清理mysql数据库的代码

2020-01-09 16:45MYSQL教程网 Mysql

有网友问我在win2003下如何自动备份MySQL数据库,既然是自动备份,那肯定得写脚本,当然我们也可以利用软件实现

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

不过到现在已经有很多的mysql备份软件,例如我比较喜欢使用的是护卫神的备份软件。


首先把脚本代码贴出来:

 

复制代码代码如下:

@echo on  

REM------------------------backup bugdb which is InnoDB-----------------------------    
del C:/backup/website/bugdb_*.sql    
cd F:/usr/wamp/mysql/bin    
set year=%date:~0,4%    
set month=%date:~5,2%    
set day=%date:~8,2%    
set filename=bugdb_%year%%month%%day%.sql    
mysqldump.exe bugdb -uroot -p123456 > F:/backup/website/%filename%    
@echo off   

 

第9行  也可以换成     set filename=bugdb%date:~0,10%.sql

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

•第四行:删除指定目录下的文件名包含有“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。

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

用批处理实现自动备份和清理mysql数据库的代码

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

用批处理实现自动备份和清理mysql数据库的代码

注意: 当设置的时候 提示你“没有权限”的时候,就勾选上面的 :仅在登入后运行 

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

复制代码代码如下:

D:/html/wamp/mysql/bin/mysql.exe -uroot -p123456 --default-character-set=utf8 bugdb < F:/bugdb_20100312.sql 

延伸 · 阅读

精彩推荐
  • MysqlMySQL进阶SELECT语法篇

    MySQL进阶SELECT语法篇

    从这个基本语法可以看出,最简单的SELECT语句是SELECT select_list,实际上利用这个最简单的SELECT语句,你也可以完成许多你期待的功能,首先你能利用它进行...

    mysql技术网2052019-10-21
  • MysqlMySQL连接查询实例详解

    MySQL连接查询实例详解

    这篇文章主要介绍了MySQL连接查询,结合实例形式总结分析了mysql表的创建、内连接、左连接、右连接、复合条件连接查询等相关操作技巧,需要的朋友可以参...

    程志伟2042019-07-07
  • Mysql深入SQLite基本操作的总结详解

    深入SQLite基本操作的总结详解

    本篇文章是对SQLite的基本操作进行了总结和介绍。需要的朋友参考下 ...

    MYSQL教程网3112019-12-25
  • Mysql解决mysql 1040错误Too many connections的方法

    解决mysql 1040错误Too many connections的方法

    因为你的mysql安装目录下的my.ini中设定的并发连接数太少或者系统繁忙导致连接数被占满 ...

    MYSQL教程网1772019-12-07
  • MysqlWindows平台下MySQL常用操作与命令

    Windows平台下MySQL常用操作与命令

    Windows平台下MySQL常用操作与命令,学习mysql的朋友可以参考下。 ...

    MYSQL教程网3722019-11-24
  • MysqlLinux下安装mysql-5.6.4 的图文教程

    Linux下安装mysql-5.6.4 的图文教程

    在开始安装前,先说明一下mysql-5.6.4与较低的版本在安装上的区别,从mysql-5.5起,mysql源码安装开始使用cmake了,因此当我们配置安装目录./configure --perfix=...

    MYSQL教程网3132020-01-03
  • MysqlMysql使用大全 从基础到存储过程

    Mysql使用大全 从基础到存储过程

    看到园子里总结的Mysql用法,我觉得没有我的全面,我的从登录到高级的存储过程都涉及到,这部分是我平常不会或是出现问题都会拿来看,不过现在就和...

    Yoby2702019-12-03
  • Mysqlmysql导入导出数据中文乱码解决方法小结

    mysql导入导出数据中文乱码解决方法小结

    本文章总结了mysql导入导出数据中文乱码解决方法,出现中文乱码一般情况是导入导入时编码的设置问题,我们只要把编码调整一致即可解决此方法,下面...

    MYSQL教程网3882019-12-09