canal捕获不到mysql变化_采用Canal监听mysql数据库变化

1》docker中安装mysql容器

开启binlog模式

修改/etc/mysql/mysql.conf.d/mysqld.cnf

docker exec -it mysql /bin/bash

cd/etc/mysql/mysql.conf.d

vi mysqld.cnf

添加这两行

f9df3e5fe5a860ea3384987a9c980da9.png

2》创建用于同步的账号并授权

采用root账号登录

mysql -uroot -p123456

create user canal@'%' IDENTIFIED by 'canal';

GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT,SUPER ON*.* TO 'canal'@'%';

FLUSH PRIVILEGES;

b75ce820502b917befc1e7175fa3724e.png

3》重启mysql容器

docker restart mysql

4》docker中安装canal

docker pull docker.io/canal/canal-server

docker run -p 11111:11111 --name canal -d docker.io/canal/canal-server

docker exec -it canal /bin/bash

cd canal-server/conf/vi canal.properties

cd example/vi instance.properties

canal.properties的配置只要保证 canal.id 和master数据库中的serverid不重复

7960c92cec40fb67f030e9b025bc6f2c.png

instance.properties

要配置master的地址 canal.instance.master.address

用于同步的账号 canal.instance.dbUsername

用于同步的密码 canal.instance.dbPassword

需要监听哪些表的正则过滤 canal.instance.filter.regex

canal的实例名称 canal.mq.topic

由于mysql主数据库是用docker安装的,这里master的地址要填写mysql容器的地址,先进入mysql容器,再查看ip就可以。

65ef8d471c195caee78446f4fdce5558.png

f0275e060a531bf9c93ce793066b4e62.png

canal.instance.filter.regex = .*\\..*    表示所有的表

canal.mq.topic 配置的实例表示微服务中要监听相同实例

docker update --restart=always canal

docker restart canal

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值