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;

canal捕获不到mysql变化_采用Canal监听mysql数据库变化_第1张图片

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不重复

canal捕获不到mysql变化_采用Canal监听mysql数据库变化_第2张图片

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捕获不到mysql变化_采用Canal监听mysql数据库变化_第3张图片

canal捕获不到mysql变化_采用Canal监听mysql数据库变化_第4张图片

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

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

docker update --restart=always canal

docker restart canal

你可能感兴趣的:(canal捕获不到mysql变化_采用Canal监听mysql数据库变化)