MySQl优化学习笔记(九)二进制日志

二进制日志应用场景就是搭建MySQL主从备份

MySQL主从备份含义:假设有个库a和库b,两个主机基于协议通信,用他们设置主从备份,a库为主库(master),b库为从库(slave),两个库都有个serverId,假设a为1,b为2。a用来做增删改,写入二进制日志,b实时读二进制日志,同时去执行同样的记录。实现主从备份。只要有增删改或改表结构等操作时就会写入二进制日志。


1、查询二进制日志相关参数:show VARIABLES like '%log_bin%'


2、开启二进制日志  在my.ini中修改配置项:log-bin=pythonlog , pythonlog 为日志文件名字  。


Sql命令开启二进制无效


3、生成新的二进制文件:flush logs;


flush logs;执行之后,文件夹下会生成一个新的二进制文件00002:


打开index文件,里面会存放两个二进制文件的文件名:

执行以下update语句测试二进制日志记录情况:


4、查看二进制日志内容

二进制文件不能直接打开,可用SQL命令:show binlog events in 'pythonlog.000002';查看内容,如下图:

用SQL命令查看的二进制日志内容

但以上查询结果也不直观,我们用mysqlbinlog.exe工具打开,在cmd中先打开日志所在路径:


然后调用工具:


以下是二进制日志内容:


仍然看不懂,用以下命令输出到一个目录下:


将日志内容输出到:D:/python.log

对应文件夹下会生成日志文件:

生成的日志文件,但打开后仍看不懂

以下命令将二进制文件解码为能看懂的log内容:

将二进制内容转换为文本的命令

打开生成的log文件,以下为解码后日志中的update语句:



附:命令行的工具的本质是exe,这个工具安装目录下,在系统环境变量path配置了这个目录。

在命令行随便输入一个工具(例如:mysql),优先找当前文件夹中是否有mySQl.exe的工具,如果没有则从系统环境变量找path配置项,从前往后依次找。

你可能感兴趣的:(MySQl优化学习笔记(九)二进制日志)