一文解析MySQL中那些常用工具、日志及读写分离( 二 )


mysqlbin.000001,mysqlbin.000002
log_bin=mysqlbin
配置二进制日志的格式
binlog_format=STATEMENT
2.2.2 日志格式
STATEMENT
该日志格式在日志文件中记录的都是SQL语句(statmeent),每一条对数据进行修改的SQL都会记录在日志文件中,通过MySQL提供的MySQLbinlog工具,可以清晰的查看到每条语句的文本 。主从复制的时候,从库(slave)会将日志解析为原文本,并在从库重新执行一次 。
ROW
该日志格式在日志文件中记录的是每一行的数据变更,而不是记录SQL语句 。比如,执行SQL语句 :update tb_book set status = ‘1’,如果是STATEMENT日志格式,在日志中会记录一行SQL文件;如果是ROW,由于是对全表进行更新,也就是每一行记录都会发生变更,ROW格式的日志中会记录每一行的数据变更 。
MIXED
这是目前MySQL默认的日志格式,即混合了STATEMENT和ROW两种格式 。默认情况下采用STATEMENT,但是在一些特殊情况下采用ROW来进行记录 。MIXED格式能尽量利用两种模式的优点,而避开他们的缺点 。
2.2.3 日志读取
由于日志以二进制方式存储,不能直接读取,需要用mysqlbinlog工具来查看,语法如下 :
mysqlbinlog log-file;
查看STATEMENT格式日志 :
查看日志文件 :默认在/var/lib/mysql目录下

一文解析MySQL中那些常用工具、日志及读写分离

文章插图
 
mysqlbin.index : 该文件是日志索引文件,记录日志的文件名;
mysqlbing.000001 : 日志文件
查看日志内容 :
mysqlbinlog mysqlbing.000001;
一文解析MySQL中那些常用工具、日志及读写分离

文章插图
 
查看ROW格式日志
配置 :
配置开启binlog日志,日志的文件前缀为mysqlbin —》生成的文件名如:mysqlbin.000001,mysqlbin.000002
log_bin=mysqlbin
配置二进制日志的格式
binlog_format=ROW
如果日志格式是ROW,直接查看数据,是查看不懂的;可以在mysqlbinlog后面加上参数 -w
mysqbinlog -vv mysqlbin.000002
一文解析MySQL中那些常用工具、日志及读写分离

文章插图
 
2.2.4 日志删除
对于比较繁忙的系统,由于每天生成日志量大,这些日志如果长时间不清除,将会占用大量的磁盘空间 。下面我们将会讲解几种删除日志的常见方法:
方式1:
通过Reset Master指令删除全部binlog日志,删除之后,日志编号,将从xxxx.000001重新开始 。
查询之前,先查询下日志文件 :
一文解析MySQL中那些常用工具、日志及读写分离

文章插图
 
执行删除日志命令 :
Reset Master
执行之后,查看日志文件 :
一文解析MySQL中那些常用工具、日志及读写分离

文章插图
 
方式2:
执行指令 purge master logs to 'mysqlbin.


推荐阅读