Heim  >  Artikel  >  Datenbank  >  不能再手贱了,用mysqlbinlog恢复数据

不能再手贱了,用mysqlbinlog恢复数据

WBOY
WBOYOriginal
2016-06-07 16:11:051188Durchsuche

今天本地部署一个新项目,结果不小心把另外一个库的表全删了,当时那个心啊,用了一些硬盘恢复的工具也没找回来,只好想别的办法了,还好记录了binlog,总算是把数据都还原了。以后真的要看清楚再删,还好是本地的文章库,不是服务器上的库,要不真就麻烦了

今天本地部署一个新项目,结果不小心把另外一个库的表全删了,当时那个心啊,用了一些硬盘恢复的工具也没找回来,只好想别的办法了,还好记录了binlog,总算是把数据都还原了。以后真的要看清楚再删,还好是本地的文章库,不是服务器上的库,要不真就麻烦了,不过也正是因为是自己电脑上的库,从来不备份的,所以恢复起来也确实麻烦。在这里记录一下。

 

先确认你的MYSQL有没有启用bin日志,就是看下mysql.ini(my.cnf)里的log-bin=mysql-bin,可以自定义一个目录和前缀名,比如/data/log/mylog这样。

 

然后在数据库文件存放的data目录就能看到mysql-bin.00000x这样的文件,这就是二进制日志了,我们可以导出成txt格式的,里面其实就是对数据库的各种操作SQL语句。

 

导出txt文件:

 

 

E:\wamp\bin\mysql\mysql5.6.12\bin>mysqlbinlog --database=testdatabase E:\wamp\bin\mysql\mysql5.6.12\data\mysql-bin.000312 > C:\\test1.txt

这是WINDOWS下的导出,linux也是类似的。

 

*--database=数据库名

*从最早的日志还始还原

*linux下可以很方便的mysql-bin.000*

*可以加参数开始时间和结束时间,就是你执行那条SQL语句的时间

*--start-datetime="2014-12-04 11:25:56" --stop-datetime="2014-12-04 13:23:50"

 

恢复数据:

 

 

E:\wamp\bin\mysql\mysql5.6.12\bin>mysqlbinlog --database=yundongchao E:\wamp\bin\mysql\mysql5.6.12\data\mysql-bin.000179 | mysql -u root -p

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn