binlog使用配置和实现

Posted dabenxiang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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

  

技术图片
 
 
 
 

 

 
 

 

 

以上是关于binlog使用配置和实现的主要内容,如果未能解决你的问题,请参考以下文章

MySQL主从介绍,配置主服务器,配置从服务器,实现主从同步

用Mysqldump实现全库备份+binlog的数据还原

mysql主从配置实现一主一从读写分离

mysql主从配置实现一主一从读写分离

mysql主从配置实现一主一从读写分离

配置MySQL CDC(Binlog)