`
wsdtq123
  • 浏览: 46789 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类

mysql通过binlog恢复数据

 
阅读更多
mysql自身没有提供flashback功能,所以我们在误操作之后要恢复数据就麻烦很多,如果不用别人的插件,下面这种方法可以恢复

1.binlog必须开启,并且必须是ROW模式。如果这个前提不满足,那么下面这种方法恢复不了数据。
查看binlog是否开启 show variables like  '%log_bin%'
查看binlog的模式 show variables like  '%binlog_format%'
在my.ini中加入这两行
# binlog日志文件名前缀
log-bin=mysql_bin
# binlog格式
binlog_format=ROW

2.user表删除一条数据 DELETE from user where name='路飞',这个时候在data文件夹中就会产生binlog


3.使用 show BINARY logs; 命令查看binlog列表


4.000006最大,这个最新的日志就是记录在000006里面,使用show binlog events in 'mysql_bin.000006'; 命令来查看000006这个binlog具体细节,主要是看start-pos和stop-pos

从图中可以看出最后一次操作从pos=14043开始,到pos=14171结束

5.命令行cd到MySQL的bin目录下我的路径是E:\program\db\mysql-5.6.17-winx64\bin

6.使用mysql自带的mysqlbinlog命令来查看bin_log.000006的具体sql,命令为
E:\program\db\mysql-5.6.17-winx64\bin>mysqlbinlog --start-position=14043 --stop-position=14171  -v -v ../data/mysql_bin.000006

我们已经看到sql了,如果数据中只有英文到没什么,如果数据中有中文居然会出现乱码,mysqlbinlog有一个指定编码的参数,我试过,没什么用。-v表示显示sql, -v -v显示行定义,可以用 mysqlbinlog --help查看各个参数含义

7.如果遇到中文乱码就不要在命令行下面看了,使用命令 E:\program\db\mysql-5.6.17-winx64\bin>mysqlbinlog --start-position=14043 --stop-position=14171  -v -v ../data/mysql_bin.000006>d:\3.sql
把这个查看结果导出到D盘,然后用notepad++来打开它

显示正常,如果是Linux出现乱码问题,导出到windows用notepad++打开

8.上图中@1=2  @2='路飞' 这个表的第一列=2,第二列=路飞的数据被删了。既然知道被删的数据的具体信息了,那就可以手动恢复这条数据。如果数据量太大,可以借助一些其他工具或者自己写个程序来恢复。

mysql -uroot -p dbname < 3.sql也可以

参考:http://www.cnblogs.com/kevingrace/p/5904800.html
  • 大小: 8.2 KB
  • 大小: 22.1 KB
  • 大小: 26.8 KB
  • 大小: 59.9 KB
  • 大小: 48.4 KB
0
0
分享到:
评论
1 楼 qq1264926943 2016-06-10  
引用

相关推荐

    mysqlbinlog和binlog2sql的使用及mysql通过binlog日志恢复数据库数据

    mysqlbinlog和binlog2sql的使用及mysql通过binlog日志恢复数据库数据

    mysql binlog日志恢复【亲测有效,有例子实测】

    二进制日志(binnary log)以事件形式记录了对MySQL数据库执行更改的所有操作。 binlog是记录所有数据库表结构变更(例如CREATE、ALTER TABLE…)以及表数据修改(INSERT...数据恢复:通过mysqlbinlog工具来恢复数据。

    MySQL利用binlog恢复库表

    利用binlog恢复库表,要求如下: 1. 启用binlog日志 2. 创建db1库tb1表,插入3条记录 3. 删除tb1表中刚插入的3条记录 4. 使用mysqlbinlog恢复删除的3条记录

    mysql-binlog二进制日志恢复

    个人整理,mysql binlog 日志恢复

    MySQL – binlog日志简介及设置

      mysql-binlog是MySQL数据库的二进制日志,用于记录用户对数据库操作的SQL语句((除了数据查询语句)信息。可以使用mysqlbin命令查看二进制日志的内容。 binlog 的作用 用于数据库的主从复制及数据的增量恢复。 ...

    mysql如何利用binlog进行数据恢复详解

    最近线上误操作了一个数据,由于是直接修改的数据库,所有唯一的恢复方式就在mysql的binlog。binlog使用的是ROW模式,即受影响的每条记录都会生成一个sql。同时利用了binlog2sql项目。 MySQL Binary Log也就是常说的...

    使用binlog日志恢复MySQL数据库删除数据的方法

    本文主要通过实际操作说明对binlog日志恢复MySQL数据库删除数据的方法进行说明,内容主要包括MySQL数据库binlog日志查询、恢复等相关介绍,希望对大家在工作及生活中遇到的此类问题有所帮助,如需操作指导,可留言!

    mysql.binlog数据恢复

    这是一个eclipse安装插件,在oxygen下测试是可用的。...操作:1、获取binlog文件 2、选中要处理的部分 3、选择菜单“jhh-&gt;binlog-&gt;”下对应的操作 4、会在相同目录下生成sql文件(文件名相同,加了sql后缀)

    MySQL-xtrabackup与MySQL5.7 binlog实现数据即时点恢复.docx

    MySQL-xtrabackup与MySQL5.7 binlog实现数据即时点恢复.docx

    MySQL 两种恢复数据的方法

    使用这种方式的前提必须有最近的备份集或者知道出现误操作起始的binlog 位点或者GTID,利用备份集恢复到中间的机器上,然后利用MySQL的slave 特性 START SLAVE [SQL_THREAD] UNTIL MASTER_LOG_FILE = ‘log_n

    通过binlog日志进行mysql数据恢复

    通过binlog日志进行mysql数据恢复

    MySQL Binlog Digger 4.8.0

    MySQL Binlog Digger是一个基于图形界面的MySQL Binlog挖掘分析工具,可以为数据恢复提供undo sql回滚语句,它免安装,能对在线binlog与离线binlog进行分析,在选定在线binlog(甚至分析到最新日志)或离线binlog日志...

    PHP分析Mysql的Binlog日志并恢复数据

    由于mysqlbinlog命令下无法筛选出某一个表的数据所以只能把日志文件全部导出

    mysql数据库恢复 binlog2sql数据库恢复

    mysql服务设置; mysql数据库登录;使用binlog2sql工具进行数据bin查询, 数据恢复、操作撤销等;

    mysql开启binlog.docx

    Mysql的binlog就是mysql记录数据库事物的日志,类似于Oracle的重做日志,arterybase的WAL日志,这些日志记录了数据库的事物信息,例如对数据的增删改查操作,每一条操作都会记录到binlog中,所以binlog配合数据库全...

    Mysql的Binlog数据恢复:不小心删除数据库详解

    Mysql的Bin log数据恢复:不小心删除数据库 前言:因为不小心删除了测试机器上Mysql的一整个数据库Schema,因为是测试机所以没有做备份,现在通过MySQL的Bin log方式恢复到删除以前的数据库。 当然做Bin log的数据...

    通过binlog得到恢复数据的sql语句.md

    通过binlog得到恢复数据的sql语句.md

    解说mysql之binlog日志以及利用binlog日志恢复数据的方法

    在数据丢失的紧急情况下,我们往往会想到用binlog日志功能进行数据恢复(定时全备份+binlog日志恢复增量数据部分),化险为夷! 废话不多说,下面是梳理的binlog日志操作解说: 一、初步了解binlog MySQL的二进制...

Global site tag (gtag.js) - Google Analytics