mysql binlog

0x01 查看是否开启 binlog

查看binlog信息

执行 show variables like 'log_%'; 查看log相关信息

  • log_bin: binlog 是否开启
  • log_bin_basebame: binlog (文件目录) + 文件名称
  • log_bin_index: binlog 文件 index (后缀)

0x02 开启 binlog

如果上述命令查看的 log_bin 属性值为 OFF,则需要修改配置开启 binlog。在 mysql 配置文件 my.cnf (mac 通常在/etc/目录下,没有则自行添加) 中加入 log-bin=mysql-bin 开启binlog。
开启binlog

0x03 binlog 的三种模式

binlog 有三种模式:statement、row、mixed,模式可以在 my.cnf 中指定,如 binlog_format=row

statement
statement
row
row
mysqlbinlog --no-defaults -vv --base64-output=decode-rows mysql-bin.000007 > my-bin.000007.txt 
row
mixed
mixed

0x04 小结

binlog的row模式记录的是修改前后具体的记录,statement模式记录的是sql语句。mixed是row和statement模式结合起来使用。

row
  • 优点:对于使用了函数或随机数的 SQL 语句,不会出现不一致的情况。
  • 缺点:日志量较大,占用空间较大。执行速度较慢,因为需要记录每一条数据的变化情况。
statement
  • 优点:日志量较小,占用空间小。执行速度快,因为只需要记录 SQL 语句即可。
  • 缺点:对于使用了函数或随机数的 SQL 语句,可能会出现不一致的情况,比如随机数每次生成的都不一样。
mixed
  • 优点:能够根据具体情况自动选择使用最优的模式。
  • 缺点:执行速度较慢,因为需要根据具体情况选择使用不同的模式。
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容