码迷,mamicode.com
首页 > 数据库 > 详细

【windows】环境下mysql的数据备份以及恢复

时间:2018-09-01 23:58:28      阅读:345      评论:0      收藏:0      [点我收藏+]

标签:告诉   误删除   --   误删   hang   存在   分享   alt   方便   

 

 

 

【windows】环境下mysql的数据备份以及恢复

  无论是刚刚入行的‘猿友’还是入行很久的‘老猿’,我相信都会遇到过因为各种原因(很多情况下是自己误删了数据库)的操作.drop databases xxxxx

  而误删了线上项目的数据库是一件很恐怖的事情,那么如果大家遇到这种情况怎么办呢?首先不要着急(我感觉说了也白说-,-),先看一看自己的mysql是否开启了binlog日志功能,如果没有???game over !!!

  关于查看binlog日志有没有开启,请到自己的Mysql文件下找my.ini中的[mysqld],里面是否有log-bin=mysql-bin,有则表示开启了(没有开启的赶紧开启,不然都没后悔药吃!!!)

  为了方便新手阅读,在此我从数据备份开始讲。

  【数据备份】

  •   首先我们先建一个测试用的数据库drop_test
  •   并在drop_test中新建一张test表,表内容随意(反正是测试用的)
  •        数据内容如下

  技术分享图片

  

  在确保了binlog开启了之后,在mysql文件夹中的bin文件夹中有一个mysqldump.exe,这个就是常用的数据库备份工具之一,我们执行此程序,备份我们的drop_test数据库

  执行语句:mysqldump -uroot -p -B -F -R -x --master-data=2  drop_test  >  d:\backups\drop_test_bac.sql;这是完全备份,用于备份此语句执行时(到这时刻为止)的数据库数据

  技术分享图片

  输入密码后,即可在D:\backups目录下看到文件drop_test_bac.sql

  技术分享图片

  我们可以打开看看,发现里面存了数据库drop_test的表信息以及表内容

  假如我们在备份之后,又操作了数据库(往drop_test数据库中增加了内容)

  技术分享图片

  而这个时候,我们误删除了数据库drop_test(悲剧的执行了drop  database  drop_test),导致数据库drop_test没了!!!

   技术分享图片

  这个时候不要慌,首先我们先从备份的数据库文件中还原数据

  执行语句:mysql -uroot -p > d:\backups\drop_test_bac.sql

  技术分享图片

  执行结束后我们将发现drop_test数据库又回来了,并且里面的表还在,数据.....嗯?怎么只恢复了一部分数据?还有一部分呢?????

技术分享图片

 

   我们在做备份数据库之后,又新增了一些数据,假如在新增之后我们删除了数据库,那么新增的那部分怎么办?不要急,首先我们打开drop_test_bac.sql,找到类似-- CHANGE MASTER TO MASTER_LOG_FILE=‘mysql-bin.000009‘, MASTER_LOG_POS=107;这句话,这句话告诉我们,将那些新增的数据保存在了mysql-bin.000009的第107节点里,接下来我们就要考虑从这里恢复我们的数据。

  这个mysql-bin.000009在我们的mysql文件夹中的data文件夹里(我的是phpstudy环境,默认在这里),我们先拷贝到d:\backups文件夹里

  技术分享图片

  通过mysqlbinlog命令将mysql-bin.000009二进制文件转成sql文件(刚开始我的mysql的bin文件夹里没有mysqlbinlog工具,我是到网上下了一个,如果没有的同学可以问我要,也可以自己网上找)

  执行语句:mysqlbinlog -d drop_test d:\backups\mysql-bin.000009 > d:\backups\009bac_bin.sql

  技术分享图片

  执行结束后我们在d:\backups文件夹里会生成009bac_bin.sql文件

  技术分享图片

  将此文件里的drop操作删除(不然恢复了又直接删除了-,-)

  接下来就是恢复此文件数据了

  执行语句:mysql -uroot -p > d:\backups\009bac_bin.sql

  数据恢复完成!!!

  技术分享图片

PS:第一次发微博,有些地方写得不好的地方欢迎大家指出!!!

【windows】环境下mysql的数据备份以及恢复

标签:告诉   误删除   --   误删   hang   存在   分享   alt   方便   

原文地址:https://www.cnblogs.com/x-gentleman/p/9571697.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!