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

Posted x-gentleman

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了windows环境下mysql的数据备份以及恢复相关的知识,希望对你有一定的参考价值。

 

 

 

【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:ackupsdrop_test_bac.sql;这是完全备份,用于备份此语句执行时(到这时刻为止)的数据库数据

  技术分享图片

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

  技术分享图片

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

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

  技术分享图片

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

   技术分享图片

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

  执行语句:mysql -uroot -p > d:ackupsdrop_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:ackups文件夹里

  技术分享图片

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

  执行语句:mysqlbinlog -d drop_test d:ackupsmysql-bin.000009 > d:ackups09bac_bin.sql

  技术分享图片

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

  技术分享图片

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

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

  执行语句:mysql -uroot -p > d:ackups09bac_bin.sql

  数据恢复完成!!!

  技术分享图片

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

以上是关于windows环境下mysql的数据备份以及恢复的主要内容,如果未能解决你的问题,请参考以下文章

Windows环境下Mysql如何快速导入或恢复表为innodb的数据

windows环境下mysql的解压安装以及备份和还原

mysqlbinlog来恢复mysql数据库数据简单体验

关于Windows下MySQL5.7环境变量以及密码问题总结

MySQL备份及恢复

阿里云RDS-Mysql物理备份数据库文件,在本地windows下数据库恢复过程