mysqlbinlog日志内容,mysql重做日志与binlog日志区别,MySQL的binlog日志使用详解

mysqlbinlog日志内容,mysql重做日志与binlog日志区别,MySQL的binlog日志使用详解

本文主要介绍MySQL的binlog日志用法的详细讲解,通过示例代码详细介绍,对大家的学习或工作有一定的参考价值。有需要的朋友下面和边肖一起学习。

Binlog是一个二进制日志文件,记录了MySQL的所有DML操作。通过binlog日志,可以做数据恢复、增量备份、主从复制、主从复制等等。开发者可能不太关注binlog,但是对于运营商或者架构师来说,它是非常重要的。

这个版本的MySQL 5.7默认不打开binlog日志。具体打开方式请查看https://www.jb51.net/article/207953.htm。

成功打开binlog后,可以在my.inf配置文件中查看binlog文件的位置。也可以在MySQL的命令行中查看。命令行视图代码如下

显示类似“%log_bin%”的变量;

我们也可以看看MySQL的binlog的现状。

显示主机状态;

从上图可以看出,目前只有一个binlog文件,文件名为:mysql-bin.000001每当我们重启一次,会自动生成一个binlog文件,重启后我们会执行同样的命令。内容如下:

在存储binlog的目录中也有这样一个文件。

当然,我们也可以手动刷新binlog文件。到flush logs,还将创建一个新的binlog文件。实际上,当服务器重新启动时,也会调用刷新日志操作。

如果我们想清除所有这些文件,我们可以使用reset master 来处理它们。

让我来看看单个文件的操作。首先,我们想看看文件的内容。

找到binlog的目录,比如我们要看mysql-bin.000001

vi mysql-bin.000001

我们看到的一堆乱码。我们知道这是一堆二进制文件,所以把二进制文件作为文本打开肯定有问题。那么我们如何查看这个文件的内容呢?

Mysql为我们提供了一个查看binlog日志的工具,叫做mysqlbinlog

mysqlbinlog myql-bin.000001

这个文件相当长。一打开就看不完怎么办?这里可以用linux管道,这里就不赘述了。我可以自己找一些关于linux的知识。

注意,上面的截图中有一个位置字段,类似于指针。目前,该字段的值为154,表示binlog的当前位置。每次我们执行dml操作时,位置都会改变。例如,让我们首先创建一个数据测试。

在创建之前,我们可以清除binlog日志以便查看它,并且可以使用reset master。在生产环境中,这个操作是非常危险的,所以我们可以使用刷新日志来处理它,并生成一个新的binlog文件。无论哪种方式,我们在测试环境中只需要一个新的binlog文件。生成新的binlog文件后,我们可以通过show master status来检查状态。

让我们执行一个dml语句,例如,我们想要创建一个测试数据库。

创建数据库测试;

然后我们再来看创作后的状态。如下,我们发现仓位从154变成了313,也就是说我们的操作在154和313之间。然后我们再来看binlog的内容。

我们截取binlog在154和313之间的内容如下:

#第154页

#170708 9:24:02服务器id 12345 end _ log _ pos 219 CRC320x 30763 FFE Anonymous _ GTID last _ committed=0 sequence _ number=1

设置@@SESSION。GTID_NEXT='匿名'/*!*/;

#第219页

#170708 9:24:02服务器id 12345 end _ log _ pos 313 CRC320x4d 0140 B3查询thread _ id=5 exec _ time=0 error _ code=0

设置时间戳=1499477042/*!*/;

SET @ @ session . pseudo _ thread _ id=5/*!*/;

SET @ @ session . foreign _ key _ checks=1,@@session.sql_auto_is_null=0,@@session.unique_checks=1,@@session.autocommit=1/*!*/;

SET @ @ session . SQL _ mode=1436549152/*!*/;

SET @ @ session . auto _ increment _ increment=1,@ @ session . auto _ increment _ offset=1/*!*/;

/*!\C utf8 *//*!*/;

SET @ @ session . character _ SET _ client=33,@ @ session . collation _ connection=33,@@session.collation_server=8/*!*/;

SET @@session.lc_time_names=0/*!*/;

SET @ @ session . collation _ database=DEFAULT/*!*/;

创建数据库测试

/*!*/;

设置@@SESSION。GTID_NEXT='AUTOMATIC' /*由mysqlbinlog *//*添加!*/;

分隔符;

#日志文件结尾

/*!50003 SET COMPLETION _ TYPE=@ OLD _ COMPLETION _ TYPE */;

/*!50530设置@ @会话。伪_从_模式=0 */;

我们可以看到mysql做了很多隐式操作,细心的朋友会看到这句话:创建数据库测试;

下面我们来简单总结一下关于binlog:

1.binlog file将在服务启动时创建一个新文件。

2.您可以通过刷新日志来手动刷新日志,以生成新的binlog文件。

3.您可以通过显示主机状态来查看binlog的状态。

4.您可以通过重置主机清除binlog日志文件。

5.可以通过mysqlbinlog工具查看binlog日志的内容。

6.通过执行dml,mysql会自动记录binlog。

关于MySQL binlog日志用法的详细解释,本文到此为止。有关MySQL binlog日志使用的更多信息,请搜索我们以前的文章或继续浏览下面的相关文章。希望你以后能支持我们!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • 使用php连接mysql数据库,php连接数据库的方法
  • 使用php连接mysql数据库,php连接数据库的方法,一文详解PHP连接MySQL数据库的三种方式
  • pymysql菜鸟教程,pymysql 使用
  • pymysql菜鸟教程,pymysql 使用,pymysql模块使用简介与示例
  • mysql锁实现,mysql锁算法
  • mysql锁实现,mysql锁算法,MySQL锁机制与用法分析
  • mysql连接报错10061,mysql连接错误10060
  • mysql连接报错10061,mysql连接错误10060,MYSQL无法连接 提示10055错误的解决方法
  • mysql连接报10060错误,mysql连接报错10055
  • mysql连接报10060错误,mysql连接报错10055,MySQL连接异常报10061错误问题解决
  • mysql辅助索引和主键索引,mysql 主键 外键 索引
  • mysql辅助索引和主键索引,mysql 主键 外键 索引,MySQL索引之主键索引
  • MySQL语句大全,mysql常见语句总结
  • MySQL语句大全,mysql常见语句总结,MySQL语句整理及汇总介绍
  • mysql触发器的使用方法实验报告,mysql中触发器的使用
  • 留言与评论(共有 条评论)
       
    验证码: