BINLOG 记录所有DDL 数据定义语言和DML数据操纵语言 但不包括数据查询
SELECT SHOW语句
作用:
灾难时的数据恢复
mysql的主从复制 mysql8版本中 默认二进制是开启的
show variables like '%log_bin%'
日志格式:
STAEMENT 基于sql语句的日志记录,对数据修改的sql都会记录在日志文件中
ROW 基于行的日志记录 记录的是每一行的数据变更(默认)
MIXED 混合前面2种格式,默认采用STATEMENT
show variables like '%binlog_format%';
日志查看:
由于日志是二进制方式存储的,不能直接读取,需要通过二进制日志查询工具
mysqlbinlog查看
mysqlbinlog [选项] logfilename
选项:
-d 指定数据库名称 只列出指定的数据库相关操作
-o 忽略掉日志中的前n行命令
-v 将行事件(数据变更)重构为sql语句
-w 将行事件(数据变更) 重构为sql语句 并输出注释信息
日志删除:
如果业务庞大,每天会生成很多binlog数据巨大,太多会占用磁盘空间
reset master 删除全部binlog日志 删除之后 日志编号 从binlog.000001重新开始
purge master logs to 'binlog.****' 删除****编号之前的所有日志
purge master logs before 'yyyy-mm-dd hh24:mi:ss' 删除日志为yyyy-mm-dd hh24:mi:ss之前产生的所有日志
也可以在mysql的配置文件中配置二进制日志的过期时间,自动过期:
show variables like '%binlog_expire_logs_seconds%';
2592000 s 为 30天