binlog

Posted baby123

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了binlog相关的知识,希望对你有一定的参考价值。

binlog是一个二进制格式的文件,用于记录用户对数据库更新的SQL语句信息,但对库表等内容的查询不会记录

由于是二进制文件,需使用mysqlbinlog解析查看

主要作用:用于数据库的主从复制及数据的增量恢复

binlog有三种模式:

  ROW(行模式):

      记录哪条数据修改了

      记录的是修改的那条记录的全部数据,即使只更新了一个字段,binlog里也会记录所有字段的数据

  Statement(语句模式): 

     每一条会修改数据的sql都会记录在binlog中

  Mixed(混合模式):

    上面两种混合使用

    一般的复制使用STATEMENT模式保存binlog,对于STATEMENT模式无法复制的操作使用ROW模式保存binlog,MySQL会根据执行的SQL语句选择日志保存方式

查看日志开启状态

show variables like ‘log_%‘;  

+---------------------------------+--------------------------------+
| Variable_name | Value |
+---------------------------------+--------------------------------+
| log_bin | OFF |
| log_bin_trust_function_creators | OFF |
| log_error | D:\log\mysql\mysql_log_err.txt |
| log_output | FILE |
| log_queries_not_using_indexes | OFF |
| log_slave_updates | OFF |
| log_slow_queries | ON |
| log_warnings | 1 |
+---------------------------------+--------------------------------+

配置

  修改mysql.ini(Windows上)

#设置日志格式
binlog_format = mixed
#设置日志路径,注意路经需要mysql用户有权限写
log-bin = D:/log/mysql/mysql-bin.log
#设置binlog清理时间
expire_logs_days = 7
#binlog每个日志文件大小
max_binlog_size = 100m
#binlog缓存大小
binlog_cache_size = 4m
#最大binlog缓存大小
max_binlog_cache_size = 512m

重启mysql

show variables like ‘log_bin‘;

+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| log_bin | ON |
+---------------+-------+

查看mysql的binlog模式

+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| binlog_format | MIXED |
+---------------+-------+

 

以上是关于binlog的主要内容,如果未能解决你的问题,请参考以下文章

Binlog 的三个业务应用场景

Binlog 的三个业务应用场景

mysql-5.7.17 binlog查询

MySQL中的日志“binlog”的三种格式

Mysql数据库之Binlog日志使用总结

Mysql数据库之Binlog日志使用总结