binlog

折月煮酒 提交于 2019-11-26 11:05:55

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 |
+---------------+-------+

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!