什么MYSQL的binlog?

记录对数据发生或潜在发生更改的SQL语句(用来记录mysql内部增删改等对mysql数据库有更新的内容的记录(对数据库的改动),对数据库的查询select或show等不会被binlog日志记录),并以二进制的形式保存在磁盘中。

监听他有什么用?主要使用场景?

1、MySQL的作用类似于Oracle的归档日志

2、可以用来查看数据库的变更历史(具体的时间点所有的SQL操作)

可以通过MYSQL自带的命令查看

3、数据库增量备份和恢复(增量备份和基于时间点的恢复)

可以通过使用mysqlbinlog工具来使恢复数据

4、Mysql的复制(主主数据库的复制、主从数据库的复制)

MySQL Replication在master端开启binlog,master把它的二进制日志传递给slaves(可以是一个也可以是多个)来达到master-slave数据一致的目的。

开启MYSQL binlog使用操作步骤

1、查看MYSQL是否已开启binlog

使用命令:show variables like "%bin%";

log-bin为off 则说明此MYSQL数据库并未开启binlog日志

2、开启binlog日志功能

linux命令行输入:vim /etc/my.cnf

在my.cnf文件中的[mysqld]节点下添加log-bin=mysql-bin 结果如图所示

保存my.cnf文件

重启mysql服务器service mysql restart 执行命令重启mysql

使用命令查看是否binlog开启成功:show variables like "%bin%";

查看binlog日志

使用binlog工具mysqlbinlog  具体命令如下:

mysqlbinlog  /usr/local/mysql/data/mysql-bin.

如出现编码格式问题

则添加参数--no-defaults -v 便可解决问题

具体命令:mysqlbinlog --no-defaults -v /usr/local/mysql/data/mysql-bin.

可以查看具体操作SQL