Canal1.16配置

Canal配置监控mysql数据变化并将数据传输到kafka (mysql -> canal -> kafka

零.前提条件是有安装Zookeeper(zookeeper集群)和kafka(集群)

1.修改MySQL的配置

1.1修改Mysql配置文件

vi /etc/my.cnf

[mysqld] 

log-bin=mysql-bin #添加这⼀⾏就ok 

binlog-format=ROW #选择row模式

server_id=1 #配置mysql replaction需要定义,不能和canal的slaveId重复 
1.2重启MySQL

service mysqld restart

1.3在mysql中添加一个新的用户
#先设置密码安全级别,看1.3.2
1.3.1CREATE USER canal IDENTIFIED BY 'canal123'; 
#1.3.2可选:如果因为数据库的安全级别对密码要求比较高,无法正常创建用户,需要修改安全策略和密码策略在添加用户(生产环境不用修改,要使用复杂的密码)
set global validate_password_policy=LOW; 
set global validate_password_length=6;
1.4赋予权限

GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON . TO ‘canal’@‘%’;

1.5刷新权限

FLUSH PRIVILEGES;

1.6创建⼀个数据库

CREATE DATABASE db CHARSET utf8;

2.安装Canal

2.1下载Cannal 1.1.6版本(canal.deployer-1.1.6.tar.gz)

https://github.com/alibaba/canal/releases/tag/canal-1.1.6

2.2上传到Canan到服务器上,然后解压

注意:Canal可以与MySQL安装在同一台服务器,也可以在同一台服务器,这里是和MySQL安装在同一台服务器上。

mkdir -p /usr/local/canal
cp   canal.deployer-1.1.6.tar.gz   /usr/local/canal
tar -zxvf canal.deployer-1.1.6.tar.gz 
2.3 配置修改参数

修改instance 配置文件 vi conf/example/instance.properties

#  按需修改成自己的数据库信息
#################################################
...
canal.instance.master.address=192.168.1.20:3306
# username/password,数据库的用户名和密码
...
canal.instance.dbUsername = canal
canal.instance.dbPassword = canal
...
# mq config
canal.mq.topic=example
# 针对库名或者表名发送动态topic
# 注意:如果开启dynamicTopic,动态传输数据也要保留canal.mq.topic=example,当然example的名字可以改成其他的
#canal.mq.dynamicTopic=mytest,.*,mytest.user,mytest\\..*,.*\\..*
#例如canal.mq.dynamicTopic=topic1:db1\\.tb1,user1:doit\\.user表示的就是
#将mysql数据库 db1中的tb1表的数据传输到kafka的topic1当中
canal.mq.partition=0
# hash partition config
#canal.mq.partitionsNum=3
#库名.表名: 唯一主键,多个表之间用逗号分隔
#canal.mq.partitionHash=mytest.person:id,mytest.role:id
#################################################
2.4修改canal 配置文件vi /usr/local/canal/conf/canal.properties
# ...
# 可选项: tcp(默认), kafka,RocketMQ,rabbitmq,pulsarmq
canal.serverMode = kafka
# ...

# Canal的batch size, 默认50K, 由于kafka最大消息体限制请勿超过1M(900K以下)
canal.mq.canalBatchSize = 50
# Canal get数据的超时时间, 单位: 毫秒, 空为不限超时
canal.mq.canalGetTimeout = 100
# 是否为flat json格式对象
canal.mq.flatMessage = false
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值