• 采用Canal监听mysql数据库变化


    注意:填写进 instance.properties 的master ip 是数据库的ip

    select SUBSTRING_INDEX(host,':',1) as ip , count(*) from information_schema.processlist group by ip;

    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
  • 相关阅读:
    涨知识| 在国内,如何顺利使用谷歌(转)
    css3网站收集
    淘宝客 新内容
    淘宝客工作计划
    淘宝客笔记
    java并发编程
    代理模式之远程代理
    动态代理
    模板方法模式
    Spring整合web开发
  • 原文地址:https://www.cnblogs.com/walker-what/p/13768368.html
Copyright © 2020-2023  润新知