前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >mysql在windows下每天定时备份数据库几种方法

mysql在windows下每天定时备份数据库几种方法

原创
作者头像
用户4988085
修改2021-07-20 10:23:45
2.4K0
修改2021-07-20 10:23:45
举报
文章被收录于专栏:建站知识建站知识

在windows中备份mysql 数据库的方法有很多种,如有常用的WinRAR备份mysql、mysqldump备份成sql文件、xcopy 直接复制文件形式备份数据库,下面我来总结一下这些方法,并给出相关实例。

第一种:新建批处理文件 backup.dat,里面输入以下代码:

代码语言:javascript
复制
net stop mysqlxcopy "C:/Program Files/MySQL/MySQL Server 5.0/data/piaoyi/*.*" D:/db_backup/%date:~0,10%/ /ynet start mysql

注意:批处理命令中路径里有空格的话,必须在路径上加上双引号! 然后使用Windows的"计划任务"定时执行该批处理脚本即可。(例如:每天凌晨3点执行backup.bat) 解释:备份和恢复的操作都比较简单,完整性比较高,控制备份周期比较灵活。此方法适合有独立主机但对mysql没有管理经验的用户。缺点是占用空间比较多,备份期间mysql会短时间断开(例如:针对30M左右的数据库耗时5s左右)。?? 关于时间参数的参考: %date:~0,10%????? //提取年月日信息 %date:~-3%???????? //提取星期几信息 %time:~0,5%???????? //提取时间中的时和分 %time:~0,-3%?????? //提取时和分和秒信息

第二种:mysqldump备份成sql文件 ============== 假想环境: MySQL?? 安装位置:C:/MySQL 论坛数据库名称为:bbs MySQL root?? 密码:123456 数据库备份目的地:D:/db_backup/

脚本:

代码语言:javascript
复制
@echo offset "Ymd=%date:~,4%%date:~5,2%%date:~8,2%"C:/MySQL/bin/mysqldump --opt -u root --password=123456 bbs > D:/db_backup/bbs_%Ymd%.sql@echo on

将以上代码保存为backup_db.bat

然后使用Windows的"计划任务"定时执行该脚本即可。(例如:每天凌晨5点执行back_db.bat)

说明:此方法可以不用关闭数据库,并且可以按每一天的时间来名称备份文件。

通过%date:~5,2%来组合得出当前日期,组合的效果为yyyymmdd,date命令得到的日期格式默认为yyyy-mm-dd(如果不是此格式可以通过pause命令来暂停命令行窗口看通过%date:~,20%得到的当前计算机日期格式),所以通过%date:~5,2%即可得到日期中的第五个字符开始的两个字符,例如今天为2009-02-05,通过%date:~5,2%则可以得到02。(日期的字符串的下标是从0开始的)

第三种:利用WinRAR对MySQL数据库进行定时备份。? ??? 对于MySQL的备份,好的方法是直接备份MySQL数据库的Data目录。下面提供了一个利用WinRAR来对Data目录进行定时备份的方法。

首先当然要把WinRAR安装到计算机上。

将下面的命令写入到一个文本文件里,如 backup.bat

代码语言:javascript
复制
net stop mysql"C:/Program Files/WinRAR/WinRAR.exe" a -ag -k -r -s D:/db_backup/mysql_.rar "C:/Program Files/MySQL/MySQL Server 5.0/data/"net start mysql

winrar参数解释: a: 添加文件到压缩文件 -ag: 使用当前日期生成压缩文件名 -k: 锁定压缩文件 -r: 递归子目录 -s: 创建固实压缩文件

?? 执行以上文件后,会生成一个压缩文件如:mysql_20130803004138.rar。 ?? 进入控制面版,打开计划任务,双击"添加计划任务"。在计划任务向导中找到刚才的backup.bat文件,接着为这个任务指定一个运行时间和运行时使用的账号密码就可以了。 ?? 这种方法缺点是占用时间比较多,备份期间压缩需要时间,mysql断开比第一种方法更多的时间,但是对于文件命名很好。

1.在D盘创建db_backup文件夹,并新建backdb.bat。

2.在backdb.bat里面加入一下代码:

代码语言:javascript
复制
echo 取日期、时间变量值set yy=%date:~0,4%set mm=%date:~5,2%set dd=%date:~8,2%if /i %time:~0,2% lss 10 set hh=0%time:~1,1%if /i %time:~0,2% geq 10 set hh=%time:~0,2%set mn=%time:~3,2%set ss=%time:~6,2%set date=%yy%%mm%%dd%set time=%hh%%mn%%ss%set filename=%date%_%time% "C:/Program Files (x86)/MySQL/MySQL Server 5.0/bin/mysqldump.exe" -uroot -pxxx --opt --default-character-set=utf8 -e --triggers -R --hex-blob --flush-logs -x DBNAME > C:/db_backup/DBNAME%filename%.sql echo 导出已经完成#pause
代码语言:javascript
复制
<span style="color: rgb(68, 68, 68); font-family: Simsun; font-size: 14px; line-height: 26px; background-color: rgb(255, 255, 255);">在这里要注意你的MySQL安装路径以及相应的数据库用户名和密码,我使用的是D:/sense/mysql/bin。</span>

3.双击运行此脚本,看是否会生成Dbname20111207_200445.sql文件,如有则脚本无错误。

4.进入控制面板,在任务计划里添加计划任务,把要执行的批处理以浏览方式加入任务计划,并设定好执行时间,最好选择每天执行,这样就实现每天自动备份数据库了。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com