Canal---初识
1、概述
1.1、canal用途:
基于 Mysql数据库 增量日志解析,提供 增量数据 订阅、消费;
1.2、canal 支持源端 MySQL 版本包括 5.1.x , 5.5.x , 5.6.x , 5.7.x , 8.0.x;
2、工作原理
3、实战
3.1、Mysql 开启Binlog写入功能,配置 binlog-format 为 ROW 模式,my.cnf 中配置如下:
Linux中my.cnf位置:/etc/mysql/my.cnf
[mysqld]
log-bin=mysql-bin # 开启 binlog
binlog-format=ROW # 选择 ROW 模式
server_id=1 # 配置 MySQL replaction 需要定义,不要和 canal 的 slaveId 重复
【注意】:注意:针对阿里云 RDS for MySQL , 默认打开了 binlog , 并且账号默认具有 binlog dump 权限 , 不需要任何权限或者 binlog 设置,可以直接跳过这一步;
3.2、Mysql 授权 canal 链接 MySQL 账号 具有 作为 MySQL slave 的权限, 如果已有账户可直接 grant:
登陆进入mysql--->use ***数据库;
CREATE USER canal IDENTIFIED BY 'canal';
GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'canal'@'%';
-- GRANT ALL PRIVILEGES ON *.* TO 'canal'@'%' ;
FLUSH PRIVILEGES;
3.3、Mysql 验证binlog
show variables like 'log_bin%';
show variables like 'binlog_format%';
3.3、Docker 中安装canal镜像
docker run -d --name canal -p 11111:11111 canal/canal-server
3.4、Docker 中修改配置
canal配置文件路径: /home/admin/canal-server/conf/example/instance.properties
instance.properties