binlog使用配置和实现

时间:2019-08-21
本文章向大家介绍binlog使用配置和实现,主要包括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

  

 

原文地址:https://www.cnblogs.com/dabenxiang/p/11387216.html