包含了所有更新了数据或者已经潜在更新了数据(比如没有匹配任何行的一个DELETE);
包含关于每个更新数据库(DML)的语句的执行时间信息
不包含没有修改任何数据的语句,如果需要启用该选项,需要开启通用日志功能
主要目的是尽可能的将数据库恢复到数据库故障点,因为二进制日志包含备份后进行的所有更新
用于在主复制服务器上记录所有将发送给从服务器的语句
启用该选项数据库性能降低1%,但保障数据库完整性,对于重要数据库值得以性能换完整。有些类似于Oracle开启归档模式。
启动和设置二进制日志
默认是关闭,可以通过修改 my.ini 开启,在 [mysqld] 下添加设置:#定义开启,可以为其设置路径,默认路径在 /var/lib/mysql 即数据库目录,mysql-bin是自定义名称,
#文件名称为 mysql-bin.000001,mysql-bin.000002,mysql-bin.index
log_bin = mysql-bin
#版本5.7之后需要设置,随意设定,但集群环境下要配置不同的值,不能重复
server_id = 47
#清除过期日志时间,默认是0,即需手动删除
expire_logs_days = 10
#定义单个文件的限制大小
max_binlog_size = 100M
# 有三种格式 row、statment、mixed
binlog_format=row # binlog 日志格式
binlog_rows_query_log_events = 1 # 将原始的操作s