采用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数据库变化的主要内容,如果未能解决你的问题,请参考以下文章
SpringBoot系列之集成阿里canal监听MySQL Binlog
springboot整合canal,监听MySQL binlog日志,实现增量同步