1)看一下你的mysql服务器有没开启binlog日志(ON为开启,OFF为未开启)

show variables like 'log_bin';

2)找到你的binlog文件在哪

登录 mysql 后,使用如果命令查看binlog日志名称

show binlog events;

show binary logs;

当前活动binlog日志文件

show master status;

然后用find命令找一下上面的日志名称(先退出mysql登录状态哦)

find / -name mysql-bin.000001

3)确定要还原的内容在哪个日志里

一般日志目录下会有多个日志文件(例如:mysql-bin.000001, mysql-bin.000002, mysql-bin.000003等等),你要先确定你的要还原的部分在哪个或哪几个日志里

查看binlog日志内容的方法:

#指定节点查看
mysqlbinlog --start-position=134 --stop-position=899 /var/lib/mysql/mysql-bin.000003
#按时间节点查看
mysqlbinlog --start-datetime='2016-12-07 00:00:00' --stop-datetime='2016-12-07 17:32:00' /var/lib/mysql/mysql-bin.000003
#查看指定库
mysqlbinlog --start-datetime='2016-12-07 00:00:00' --stop-datetime='2016-12-07 17:32:00' -d test /var/lib/mysql/mysql-bin.000003
#当然,linux的 | grep 命令也是可以使用的
mysqlbinlog --start-datetime='2016-12-07 00:00:00' --stop-datetime='2016-12-07 17:32:00' /var/lib/mysql/mysql-bin.000003 -d test | grep table1

4)恢复数据库前先备份数据

#-l 是锁库的意思,-F 是备份成功后刷新binlog日志的意思,即生成一份新binlog日志文件
mysqldump -uroot -proot share -l -F > /tmp/test20161207.sql

5)使用binlog日志还原数据库

#只要在刚刚上面的查看日志的方法后台加 | mysql -u uname -p passwd dbname 就可以还原了
mysqlbinlog --no-defaults --start-position=134 --stop-position=899 /var/lib/mysql/mysql-bin.000003 -d test | mysql -uroot -proot test
#先导出sql数据文件,再进行恢复
mysqlbinlog --no-defaults --start-position=134 --stop-position=899 /var/lib/mysql/mysql-bin.000003 > /tmp/test20161207.sql #-f 是出错继续的意思
mysql -uroot -proot -f test < /tmp/test20161207.sql

6)刷新binlog日志(生成一个新的日志文件)

flush logs;

PS:因为binlog日志记录的是之前的增删改操作,如果后来修改了表结构(增删字段或改变了字段类型),有可能会使之前的sql语句执行错误,还原失败,所以在还原之前要确认一下表结构有没有错误

使用binlog日志还原数据详解的更多相关文章

  1. MySQL数据库使用mysqldump导出数据详解

    mysqldump是mysql用于转存储数据库的实用程序.它主要产生一个SQL脚本,其中包含从头重新创建数据库所必需的命令CREATE TABLE INSERT等.接下来通过本文给大家介绍MySQL数 ...

  2. nginx 日志记录 自定义详解(分析上报用)

    nginx 日志记录 自定义详解   1.log_format 普通格式 log_format main '$remote_addr - $remote_user [$time_local] $req ...

  3. MySQL通过binlog日志恢复数据

    一.查看下自己的MySQL是否开启了binlog日志 # 是否启用binlog日志 OFF:关闭 ON:开启 show variables like 'log_bin'; 二.开启binlog日志 在 ...

  4. android bundle存放数据详解

    转载自:android bundle存放数据详解 正如大家所知道,Activity之间传递数据,是将数据存放在Intent或者Bundle中 例如: 将数据存放倒Intent中传递: 将数据放到Bun ...

  5. 解说mysql之binlog日志以及利用binlog日志恢复数据

    众所周知,binlog日志对于mysql数据库来说是十分重要的.在数据丢失的紧急情况下,我们往往会想到用binlog日志功能进行数据恢复(定时全备份+binlog日志恢复增量数据部分),化险为夷! 废 ...

  6. Java学习-007-Log4J 日志记录配置文件详解及实例源代码

    此文主要讲述在初学 Java 时,常用的 Log4J 日志记录配置文件详解及实例源代码整理.希望能对初学 Java 编程的亲们有所帮助.若有不足之处,敬请大神指正,不胜感激!源代码测试通过日期为:20 ...

  7. [RM HA4] RM状态存储与还原原理详解

    RM状态存储与还原机制详解 转载请注明原始链接http://www.cnblogs.com/shenh062326/p/3562199.html. 摘要 本文基于Apache Hadoop社区最新re ...

  8. java log4j基本配置及日志级别配置详解

    java log4j日志级别配置详解 1.1 前言 说出来真是丢脸,最近被公司派到客户公司面试外包开发岗位,本来准备了什么redis.rabbitMQ.SSM框架的相关面试题以及自己做过的一些项目回顾 ...

  9. InheritableThreadLocal类原理简介使用 父子线程传递数据详解 多线程中篇(十八)

      上一篇文章中对ThreadLocal进行了详尽的介绍,另外还有一个类: InheritableThreadLocal 他是ThreadLocal的子类,那么这个类又有什么作用呢?   测试代码 p ...

随机推荐

  1. 用PL/pgSQL写postgreSQL的存储过程[转]

    http://blog.chinaunix.net/uid-7591044-id-1742967.html 今天学会了用 PL/pgSQL 写 postgreSQL 的存储过程,网上资料实在少得可怜, ...

  2. EF6 Code First 模式更新数据库架构

    定义好实体类和上下文类 在 Package Manager Console 输入以下命令 1.Enable-Migrations 启用数据迁移功能,该命令通常会在项目根目录下生成 Migrations ...

  3. 使用多字节字符集的跨平台(PC、Android、IOS、WP)编码/解码方法

    随着移动端的发展,跨平台已成为通讯架构设计的重要考虑因素,PC.Android.IOS.WP等跨多平台间的数据通讯,必然要解决字符编码/解码的问题. 多字节字符集MBCS不是跨平台的首选字符集,面向跨 ...

  4. Informix 語法

    1.修改表名稱 RENAME TABLE old_table_name TO new_table_name; 2.分頁 select  SKIP 0 FIRST 1 * from tablename ...

  5. Unity3D 使用XML进行简单的配置文件改动

    1.首先是看看效果图: 開始执行项目例如以下图所看到的 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2NsdW9qaWpp/font/5a6L5L2T/ ...

  6. python随机数seed用法

    import random ... def main(): a = random.Random() a.seed(1) print a.random() 这样就可以通过种子取得固定随机值了 网上很多只 ...

  7. [svc]influxdb+grafana实战-各省份api访问成功率统计

    简单说下需求: 统计各个省份的 3大运营商的接口访问成功率,绘图展示 数据格式 {"mobile" : "15812345608", "provinc ...

  8. C/C++:C++伪函数

    C++伪函数: 所谓的伪函数.就是说它不是一个真正的函数,而是一个类或者说是一个结构体. <span style="font-size:18px;"> #include ...

  9. mount -o remount,rw / (这是个求命的命令)

    当系统无法启动的时候.我们会前进入单用户模式(正常情况下单用户莫式是权限是正常的,只在在无法启动的情况下, 再进入单用户模式,权限才会是只读),这时候没有对文件的修改权限(所有的文件都是只读) 用这条 ...

  10. 18. Subsets II【medium】

    Given a list of numbers that may has duplicate numbers, return all possible subsets Notice Each elem ...