zoukankan      html  css  js  c++  java
  • binlog使用配置和实现

    本人是用window来配置的,首先先找到配置文件my.ini
    log-bin=E:/soft/mysql-5.7.23-winx64/log/masami-bin
    binlog-format=MIXED
    
    log_bin 是指定binlog的日志文件放到哪里。
    binlog-format 有三种形式的,我知道MIXED 会把执行的语句也记录下来了
    如下是ROW 和 MIXED 的对比(对于插入一条记录的对比)
     
    ROW:
     
    MIXED:
     
     
    由图中可以看到MIXED形式的文件是符合我们观看的。所以我选择用MIXED。
     
    然后重启myql
    #停止命令
    net stop mysql
    
    #启动命令
    net start mysql
    
    #登陆到mysql操作
    mysql -u root -p
    
    #查看mysql版本
    status;
    

      

    我的mysql版本如下
     
    启动后能看到我们的logbin文件如下:
     
     
     
    show variables like "%log_bin%";
    

      

    show variables like "%binlog_format%";
    

      

     
     
    如下的测试是这样的。我会新建一个库和新建一个表,然后插入三条数据,之后再删除一条数据
    然后再插入两条数据,最后把库删除掉,我想通过binlog 来恢复为5条数据的操作.
    首先确保日志是空的,我们先清理一下日志
    reset master;
    

      

    mysql> create database binlog;
    Query OK, 1 row affected (0.00 sec)
     
    mysql> use binlog;
    Database changed
    
    
    mysql> create table test(
           id int auto_increment not null primary key, 
           val int,
           data varchar(20)
    );
    Query OK, 0 rows affected (0.01 sec)
     
     
    mysql> insert into test(val, data) values (10, 'wu');
    Query OK, 1 row affected (0.02 sec)
     
    mysql> insert into test(val, data) values (20, 'yang');
    Query OK, 1 row affected (0.01 sec)
     
    mysql> insert into test(val, data) values (20, 'ping');
    Query OK, 1 row affected (0.01 sec)
     
    mysql> delete from test where id = 3;
    Query OK, 2 rows affected (0.01 sec)
     
    mysql> insert into test(val, data) values (40, 'ping123');
    Query OK, 1 row affected (0.01 sec)
     
    mysql> insert into test(val, data) values (50, 'ping163');
    Query OK, 1 row affected (0.01 sec)
     
    mysql> drop table test;
    Query OK, 0 rows affected (0.01 sec)
     
    mysql> drop database binlog;
    Query OK, 0 rows affected (0.00 sec)
    

      

    删除后如下,的却没有了binlog这个库了。
     
     
    做完这些操作后,我们打开我们的binlog看下记录的是什么
     
    mysqlbinlog masami-bin.000001 > 1.txt
    

      

    然后打开1.txt浏览一下
    找到删除记录的位置在哪
     
     
    我的是在1305这个位置。binlog会记录这样的标志供给我们使用的
     
    mysqlbinlog 一些参数如下 这里我使用 --start-position 和 stop-position来做操作
    
    --database                              ##与"-d"作用相同,用于指定数据
    
    -d                                     ##与“database”作用相同,用于指定数据库
    
    --start-datetime                       ##起始时间点
    
    --stop-datetime                       ##结束时间点
    
    --start-position                        ##起始位置
    
    --stop-position                       ##结束位置
    
    注意: 如果只是指定了--start-position      那他会从start-position到这个文件结束
    如果只是指定了--stop-position   那他会从问价开始到stop-position
    

      

     
    执行的命令如下
    mysqlbinlog masami-bin.000001 --stop-position=1305 | mysql -uroot -proot
    

      

    恢复了后显示:
     
     
    mysqlbinlog masami-bin.000001  --start-position=1579 --stop-position=2257| mysql -uroot -proot
    

      

     
     
     
     
     
     
     
  • 相关阅读:
    安装sqlserver后 服务启动过几秒就自动停止
    MVC使用基架添加控制器出现的错误:无法检索XXX的元数据
    HTML:模拟链接被按下,在新标签页打开页面,不使用window.open(可能被拦截)
    解决 NDP40-KB2468871不能安装
    十进制转二进制and位运算符
    行万里路
    grunt使用小记之uglify:最全的uglify使用DEMO
    grunt使用小记之开篇:grunt概述
    HTTP权威指南阅读笔记五:Web服务器
    ActionScript 3.0入门:Hello World、文件读写、数据存储(SharedObject)、与JS互调
  • 原文地址:https://www.cnblogs.com/dabenxiang/p/11387216.html
Copyright © 2011-2022 走看看