官网地址:
https://github.com/alibaba/canal
canal [kə‘næl],译意为水道/管道/沟渠,主要用途是基于 MySQL 数据库增量日志解析,提供增量数据订阅和消费。
工作原理
canal 模拟 MySQL slave 的交互协议,伪装自己为 MySQL slave ,向 MySQL master 发送 dump 协议,MySQL master 收到 dump 请求,开始推送 binary log 给 slave (即 canal )
canal 解析 binary log 对象(原始为 byte 流)。
单机版搭建
一、搭建mysql环境
1.1安装mysql
1.2.创建mysql用户并授权
#创建用户,同时授权
CREATE USER canal IDENTIFIED BY 'canal'
#授权
GRANT SELECT,REPLICATION SLAVE ,REPLICATION CLIENT ON *.* TO 'canal'@'%'
#让授权生效
FLUSH PRIVILEGES
1.3.修改mysql配置文件,开启binlog
log-bin=mysql-bin
binlog-format=Row
server_id=1
1.4.重启mysql服务
二、搭建canal
2.1.下载地址:
https://github.com/alibaba/canal/releases/download/canal-1.1.5/canal.deployer-1.1.5.tar.gz
2.2.解压canal.deployer-1.1.5.tar.gz
2.3.修改canal里面的instance的配置
canal.instance.mysql.slaveId = 1234 唯一标识
canal.instance.master.address=127.0.0.1:3306
canal.instance.dbUsername=canal
canal.instance.dbPassword=canal
canal.instance.defaultDatabaseName =
canal.instance.filter.regex=.*\\..*
2.4.启动server
bin/startup.sh // linux
bin/startup.bat // windows