采用Canal监听mysql数据库变化

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了采用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

添加这两行

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

采用root账号登录

mysql -uroot -p123456
create user canal@\'%\' IDENTIFIED by \'canal\';
GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT,SUPER ON *.* TO \'canal\'@\'%\';
FLUSH PRIVILEGES;

 

 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不重复
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就可以。

 

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

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

docker update --restart=always canal
docker restart canal

 

以上是关于采用Canal监听mysql数据库变化的主要内容,如果未能解决你的问题,请参考以下文章

Canal实时解析mysql binlog数据实战

监听MySQL的binlog日志工具分析:Canal

SpringBoot系列之集成阿里canal监听MySQL Binlog

springboot整合canal,监听MySQL binlog日志,实现增量同步

springboot整合canal,监听MySQL binlog日志,实现增量同步

数据库增量日志监听canal