基于Docker搭建Canal

本文介绍了如何在Linux上使用yum安装Docker,并创建自定义子网。接着,详细演示了如何创建并运行Canal服务器容器,以及配置MySQL的binlog开启和模式设置。在过程中遇到了因MySQL版本不兼容导致的错误,通过执行升级命令解决了问题。最后,创建了用于Canal连接的MySQL账户,并配置了Canal的相关参数,确保了数据同步和RocketMQ的连接。

首先用yum install docker在Linux搭建Docker

1.然后设置子网

docker network create --subnet=192.168.0.0/16 canalNetWork

子网作用:创建网络时使用--subnet 选项。 如果未指定--subnet 则Docker daemon会自动为网络选择并分配子网,这可能会导致与您基础结构中的另一个子网(该子网不受--subnet 管理)重叠。 当容器连接到该网络时,这种重叠可能导致连接问题或故障。

2.然后创建容器

docker run -itd --name canal-server --net canalNetWork --ip 192.168.XX.XX -p 11111:11111 canal/canal-server

1跟2执行后,创建的Canal容器连接宿主机的MYSQL会连接失败,所以改成下面这句创建

docker run -itd --name canal-server  -p 11111:11111 canal/canal-server

查看Mysql的Bin_Log有没有打开以及模式

show variables like 'log_bin';#On是打开
show global variables like "binlog_format";#看到结果MIXED是混合
set global binlog_format='ROW';#设置为ROW模式

在Mysql创建Canal连数据库的帐号,报

Column count of mysql.useris wrong. Expected 43, found 42. Created with MySQL 50552, nowrunning 50636. Please use mysql_upgrade to fix thiserror.

这个是因为Mysql版本兼容的问题,执行以下命令更新即可

cd /usr/local/mysql/bin

./mysql_upgrade -uroot -pxxxxxx

创建Mysql帐号:

CREATE USER canal IDENTIFIED BY 'canal';
GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'canal'@'%';
GRANT ALL PRIVILEGES ON *.* TO 'canal'@'%' ;

进入Canal-server容器

docker exec -it canal-server /bin/bash

在容器内,Canal的目录放在/home/admin/canal-server

编辑/home/admin/canal-server/conf/canal.properties 配置同步模式跟rocketmq的地址

cat -n canal.properties |grep "canal.serverMode" 获取这个配置所在行

然后用vi canal.properties +行号,就能直接跳到所在行

两个配置 canal.serverMode 和rocketmq.namesrv.addr

再编辑/home/admin/canal-server/conf/example/instance.properties

配置Mysql数据源及表对应topic的映射关系

canal.instance.master.address=宿主机IP:3306

canal.instance.filter.regex配置要监听的表
canal.mq.dynamicTopic配置表跟topic的映射关系

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值