介绍
canal可以用来监控数据库数据的变化,从而获得新增数据,或者修改的数据。
原理
canal模拟mysql slave的交互协议,伪装自己为mysql slave,向mysql master发送dump协议
mysql master收到dump请求,开始推送binary log给slave(也就是canal)
canal解析binary log对象(原始为byte流)
一、mysql开启binlog模式
1.1 查看当前mysql是否开启binlog模式,ON是已开启。
SHOW VARIABLES LIKE '%log_bin%';
1.2 如果log_bin的值为OFF是未开启。修改/etc/my.cnf 需要开启binlog模式。
#添加
#二进制日志存储路径
log-bin=/var/lib/mysql/mysql-bin
#server_id 不能与canal配置文件中的canal_id冲突
server_id=1234
修改完成之后,重启mysqld的服务。
1.3 创建 canal 用户,以canal身份访问数据库
create user canal@'%' IDENTIFIED by 'Canal123&';
GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIEN