MySQL的binlog有啥用,谁写的,在哪里,java高级工程师进阶书籍

MySQL的binlog是二进制日志文件,由Server层产生,主要用途包括数据恢复、主从复制等。binlog的配置涉及datadir、log-bin、log-bin-index、max_binlog_size等参数。不记录select等查询操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

那你说,我不想让MySQL记录那些日志不行吗?肯定行啊!甚至默认情况下,MySQL都不会主动为你记录bin log ,但是话说回来,你不让它写那些日志,它就没有相应的能力给你用。是吧!所以综合来说,写日志还是很香的。

知道了这些,再去学相关的知识点是不是目的性很强了呢?关于undo log、redo log白日梦前面已经和大家分享过了,知无不言的那种分享哈,如果你又有感觉了,欢迎关注我然后去翻看。

对于大部分研发同学来说,肯定听说过bin log。然后却不一定知道binlog在哪里?谁写的?怎么配置binlog?以及binlog有啥用。所以接下来的几篇文章,我们一起看看binlog的二三事,让你更好的理解binlog。

二、什么是bin log?


bin log是MySQL的二进制日志文件,翻译成中文名反到是感觉怪怪的。所以说下面直接称他为binlog。

我们都知道MySQL分为两大部分。上层是MySQL-Server,下层是可插拔的存储引擎。

binlog就是由MySQL的Server层产生。

三、它在哪里?


binlog存放的位置由datadir参数控制。

你可以通过下面的方式查看到它

知道了binlog具体在哪里,你就可以看一眼,如下

目录下有两种文件:mysql-bin.0000XX 和 mysql-bin.index

前者保存着对MySQL更改的逻辑

而后者长下面这样,估计你一看就懂了~

四、bin log的相关配置


一般关于binlog

【一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义】

开源分享完整内容戳这里

的配置都写在MySQL的配置文件中: my.cnf , 以方便启动mysql时直接让这些配置生效

作为了解,你可以大概搂一眼binlog的配置项

[mysqld]

binlog相关配置

指定binlog日志存储的位置

datadir = /home/mysql/mysql/var

规范binlog的命名为 mysql-bin.0000XX

如果加这行配置,binlog文件名为主机名

log-bin = mysql-bin

索引当前所有的binlog

log-bin-index = mysql-bin.index

最大的大小

max_binlog_size = 1G

binlog的sync时机

sync-binlog = 1

binlog的格式

binlog-format = ROW

保留七天的binlog

expire_logs_days = 7

五、binlog 有啥用?


如果说redolog中记录的是偏向物理层面的记录,如:对哪个数据页的那个记录做了什么修改。

那么binlog中记录的是偏向逻辑层面的记录:如:对xxx表中的id=yyy的行做做了什么修改,更改后的值是什么。

binlog不会记录你的 select 、show这类的操作。

你可以在query log中找到曾经执行过的诸如select、show这种仅查询的SQL。

常见的binlog有如下的作用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值