一、binlog
简介
-
binlog
也即Binlay Log
,就是Mysql
记录所有dml
操作的二进制日志文件,通过此文件,我们可以做数据恢复、主从复制、数据同步等功能。参考链接:
(http://dev.mysql.com/doc/refman/5.5/en/binary-log.html)
(http://www.taobaodba.com/html/474_mysqls-binary-log_details.html)Mysql
的binlog
是多文件存储,定位一个LogEvent
需要通过binlog filename + binlog position
,进行定位;Mysql
的binlog
数据格式,按照生成的方式,主要分为:statement-based
、row-based
、mixed
,执行以下语句查看binlog
数据格式:show variables like 'binlog_format';
二、检查是否开启了binlog
日志记录功能
```bash
SHOW VARIABLES LIKE 'log_bin';
```
- 如果这里显示的是
OFF
,则代表没有开启,需要我们进行下一步
三、更新Mysql
配置文件,开启binlog
-
找到mysql的配置文件
[root@local mysql]# find / -name my.cnf /etc/my.cnf
-
vim /etc/my.cnf
添加如下配置(Mysql版本5.7+)# open log_bin # 表示单个结点的id,由于是单结点,所以可以把id随机指定为一个数。若集群中有多个结点,则id不能相同 server-id=1 # 指定binlog日志文件的名字为mysql-bin,以及其存储路径 log-bin=/var/lib/mysql/mysql-bin
注意
Mysql5.7
以下版本开启方式略有不同,具体请百度查看区别 -
重启
Mysql
服务# centos7+ systemctl restart mysqld
或者
# centos7- service mysqld restart
修改完上述配置重启生效后,再通过命令查看是否开启成功。
四、查看binlog
日志生成情况
[root@local etc]# cd /var/lib/mysql
[root@local etc]# ll
-rw-r-----. 1 mysql mysql 56 Jun 26 2019 auto.cnf
-rw-r-----. 1 mysql mysql 11411 Apr 13 08:57 ib_buffer_pool
-rw-r-----. 1 mysql mysql 79691776 Apr 13 08:57 ibdata1
-rw-r-----. 1 mysql mysql 50331648 Apr 13 08:57 ib_logfile0
-rw-r-----. 1 mysql mysql 50331648 Apr 13 08:57 ib_logfile1
-rw-r-----. 1 mysql mysql 12582912 Apr 13 08:57 ibtmp1
drwxr-x---. 2 mysql mysql 4096 Jun 26 2019 mysql
-rw-r-----. 1 mysql mysql 154 Apr 13 08:57 mysql-bin.000001
-rw-r-----. 1 mysql mysql 32 Apr 13 08:57 mysql-bin.index
srwxrwxrwx. 1 mysql mysql 0 Apr 13 08:57 mysql.sock
-rw-------. 1 mysql mysql 6 Apr 13 08:57 mysql.sock.lock
可以看到生成了mysql-bin.000001
、mysql-bin.index
等文件,证明binlog
开启成功。