1. 首先需要将mysql的binlog日志打开。默认是关闭的。

参考网址:Windows下Mysql5.7开启binlog步骤及注意事项(https://www.cnblogs.com/wangwust/p/6433453.html)

参考网址:https://blog.csdn.net/zjerryj/article/details/77152226

参考网址:mysql row日志格式下 查看binlog sql语句

参考网址:GTID binlog解析后导入无效

使用mysql Command Line Clinet。

查看是否已开启binlog日志输出。

--》 show binary logs;      ERROR 1381 (HY000): You are not using binary logging (表示未开启)

            ※注意: my.ini 存放在 C:\ProgramData\MySQL\MySQL Server 5.7 而非 Program文件目录下,注意ProgramData文件夹默认是隐藏不显示。

             Windows下MySQL的配置文件是my.ini 在主目录下

             Linux下是/etc/my.conf

用管理员身份打开my.ini,添加binlog输出

  1. # binlog node
  2. log_bin = mysql-bin
  3. binlog_format = ROW
    server_id=1

注意有可能server_id已经存在,这个ID要唯一,不能和别的slave_id重复。

#修改UTF8

default-character-set=UTF8

character-set-server=UTF8

※   注意不是UTF-8

由于binlog日志不会自动清除,因此需要手动设置过期删除,防止文件过大占用内存。

  1. expire-logs-days=

重启mysql57服务。

mysql服务添加到path中则直接在控制台:

--》C:\WINDOWS\system32>net stop mysql57

--》C:\WINDOWS\system32>net start mysql57

此时在mysql Command Line Client:

--> show binary logs;   可查看binlog日志

-->  show variables like '%log_bin%';   这个亦可说明log是否有开启

-->   set global expire_logs_days=30;     //防止binlog积压,占用内存,设置失效30天

-->  show variables like '%expire_logs_days%';  //查看

生成的binlog日志默认就在log_bin 给的文件位置下,如果没有路径就是my.ini对应的data文件夹下。

  1. log_bin = D:\log\mysql\mysql-bin

  ※注意:对应的文件夹要存在,否则无法启动。

  1. mysql-bin.
  2. mysql-bin.index

查看:

--》show binlog events;     //获取第一个binlog的日志

--》 show binlog events in 'mysql-bin.000002';      //获取指定的binlog日志

--》 show master status\G;                                  //查看当前正在写入的binlog日志

--》 show binlog events from 219;                         //根据pos获取日志

在cmd下使用mysqlbinlog转化binlog二进制日志还原为sql:

-》mysqlbinlog -d [schemal] --start-datetime="2018-10-15 8:10:01" --stop-datetime="2018-10-15 18:10:00" d:\log\mysql\mysql-bin.000001 > d:\log\insert.sql

这样就可以还原之前被处理掉的数据。

如果查看到的sql文件中并不能直接看到insert或update,delete语句,而有base64加码的数据,则需要在导出sql时做转化。

-》 mysqlbinlog --base64-output=decode-rows -v -d [schemal] --start-datetime="2018-10-15 8:10:01" --stop-datetime="2018-10-15 18:10:00" d:\log\mysql\mysql-bin.000002 > d:\log\insert2.sql

也可以使用position代替date。

--start-position

--stop-position

可以直接执行binlog进行还原:

--》mysqlbinlog -d [schema] --start-datetime="2018-10-15 8:10:01" --stop-datetime="2018-10-15 18:10:00" d:\log\mysql\mysql-bin.000004 |mysql -u root -p

我们可以直接将还原的sql直接执行。

--》mysql source  D:\log\insert4.sql

※  执行后发现数据并未同步到数据库中,提示信息正常。

     打开 insert4.sql发现里面有好多SET @@SESSION.GTID_NEXT= [序列码]

     此内容为事务控制用的信息,但这些信息已经被用过了,被记入到Executed_Gtid_Set中,因此执行被跳过。

    在导出sql的语句中添加  --skip-gtids=true

  1.  

binlog开启和查看的更多相关文章

  1. Window 下mysql binlog开启及查看,mysqlbinlog

    查看是否开启了binlog: win+r => cmd => 连接mysql=>show variables like 'log_%'; mysql> show variabl ...

  2. binlog之三:binlog开启、查看

    0.开启二进制日志记录功能:        #vim /etc/my.cnf            [mysqld]            log_bin=mysql-bin            b ...

  3. mysql日志开启和查看

    mysql日志开启和查看. 找到mysql根目录下的my.ini文件,打开在下面插入 log-bin=mysql-bin binlog_format=mixed 然后重启mysql. 在dos端登录m ...

  4. MySQL 开启和查看bin-log日志

    1.5.7版本前修改my.cnf文件,添加log-bin=my-bin(my.cnf的位置根据自己安装的路径查看)# vi /usr/local/mysql/my.cnflog-bin=my-bin  ...

  5. 开启和查看mysql的bin-log日志

    [root@VM_0_7_centos data]# vim /etc/my.cnf [root@VM_0_7_centos data]# vim /etc/my.cnf [root@VM_0_7_c ...

  6. mysql中如何开启binlog?开启二进制日志文件?binary log?

    需求描述: 开启mysql的binlog即binary log日志功能,在此记录下. 版本描述: mysql版本:5.7.21-log 操作过程: 1.修改my.cnf并且将以下参数加入其中,重启my ...

  7. Apache开启状态查看页面(原创贴-转载请注明出处)

    =================写在前面的话================== 场景描述:有时候我们需要查看apache的运行状态,只需要开启apache的status功能就可以实现,但是stat ...

  8. MySQL的binlog数据如何查看

    binlog介绍 binlog,即二进制日志,它记录了数据库上的所有改变. 改变数据库的SQL语句执行结束时,将在binlog的末尾写入一条记录,同时通知语句解析器,语句执行完毕. binlog格式 ...

  9. linux查看端口是否已开启和查看文件数

    查看端口是否开启 lsof -i:80 查看文件数 ls | wc -w

随机推荐

  1. WordPress无法显示Gravatar头像的解决方法

    最近捣鼓WordPress博客发现无法正常显示Gravatar头像,查找原因是因为国内屏蔽了Gravatar导致的,这导致无数国内Wordpress网站头像无法显示,并且影响到了相关页面的访问速度(如 ...

  2. Java工程师 必须掌握的知识点

    Web核心:XML.HTTP及Tomcat.Servlet.request与response.cookie与session.jsp技术.jdbc高级.Ajax开发.Filter/Listener高级. ...

  3. 模拟实现ATM与购物商城

    一.功能介绍(第6条未实现)模拟实现一个ATM + 购物商城程序1额度15000或自定义2实现购物商城,买东西加入购物车,调用信用卡接口结账3可以提现,手续费5%4支持多账户登录5支持账户间转账6记录 ...

  4. 关于android中透明、半透明、百分比转换

    在xml文件中,可以直接写#0000,这个是全透明的效果.#9000这个值相当于56%的样子,因为颜色值是16进制的,#9000相当于(9/16)而百分比的话,大家可以按照这个比例来换算全透明 #00 ...

  5. [SQL]注释

    -- =============================================-- Author     :      hetao-- Create date:   2017/7/4 ...

  6. jQuery动态创建DOM节点

    var SKU=$("#SKU"); // 通过ID查找到指定表格 var oTable=SKU[0]; // 获取第一个表格 // 获取正文tbody元素 var tBodies ...

  7. 【Unix网络编程】chapter3套接字编程简介

    chapter3套接字编程简介3.1 概述 地址转换函数在地址的文本表达和他们存放在套接字地址结构中的二进制值之间进行转换.多数现存的IPv4代码使用inet_addr和inet_ntoa这两个函数, ...

  8. 小朋友学C语言(3):整数、浮点数、字符

    C语言的数据类型有整型.浮点型(就是小数).字符.字符串.数组.结构体等.刚开始学的时候,不要一下子学太多.先学最基本的整型.浮点型和字符. 对于学习程序来说,最重要的是动手操作. 先编写程序: #i ...

  9. three.js学习:初学three.js,从立方体开始

    目前three.js是浏览器展现3D效果的一个很强大的js工具,遗憾的是没有特别系统而全面的文档(threejs官方文档感觉有些缺漏,可以和WebGL中文网的threejs教程对比着看).好了,根据W ...

  10. python 函数传递可变参数的用法

    可变参数 在Python函数中,还可以定义可变参数.顾名思义,可变参数就是传入的参数个数是可变的,可以是1个.2个到任意个,还可以是0个. 我们以数学题为例子,给定一组数字a,b,c……,请计算a2 ...