当前位置:   article > 正文

01 canal监听数据库变化_canal能不能监听具体的字段名

canal能不能监听具体的字段名

1.cannal

1.1 canal简介

canal可以用来监控数据库数据的变化,从而获得新增数据,或者修改的数据。

canal是应阿里巴巴存在杭州和美国的双机房部署,存在跨机房同步的业务需求而提出的。
阿里系公司开始逐步的尝试基于数据库的日志解析,获取增量变更进行同步,由此衍生出了增量订阅&消费的业务。

在这里插入图片描述

原理相对比较简单:

  1. canal模拟mysql slave的交互协议,伪装自己为mysql slave,向mysql master发送dump协议
  2. mysql master收到dump请求,开始推送binary log给slave(也就是canal)
  3. canal解析binary log对象(原始为byte流)

1.2 环境部署

1.2.1 mysql开启binlog模式

(1)查看当前mysql是否开启binlog模式

SHOW VARIABLES LIKE '%log_bin%'
  • 1

如果log_bin的值为OFF是未开启,为ON是已开启。

(2)修改/etc/my.cnf 需要开启binlog模式。

binlog-format=ROW
server_id=1
  • 1
  • 2

修改完成之后,重启mysqld的服务

(3) 进入mysql

mysql -h localhost -u root -p
  • 1

(4)创建账号 用于测试使用

使用root账号创建用户并授予权限

create user canal@'%' IDENTIFIED by 'canal';
GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT,SUPER ON *.* TO 'canal'@'%';
FLUSH PRIVILEGES;
  • 1
  • 2
  • 3
1.2.2 canal服务端安装配置

(1)下载地址canal

https://github.com/alibaba/canal/releases/tag/canal-1.0.24
  • 1

(2)下载之后 上传到linux系统中,解压缩到指定的目录/usr/local/canal,解压缩之后的目录结构如下:
在这里插入图片描述

(3)修改 exmaple下的实例配置 vi conf/example/instance.properties

在这里插入图片描述

修改如图所示的几个参数。

(3)指定读取位置

进入mysql中执行下面语句查看binlog所在位置
在这里插入图片描述

如果file中binlog文件不为 mysql-bin.000001 可以重置mysql

mysql> reset master;
  • 1

查看canal配置文件

vim /usr/local/canal/conf/example/meta.dat
  • 1

找到对应的binlog信息更改一致即可

"journalName":"mysql-bin.000001","position":120,"
  • 1

注意:如果不一致&#

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号