docker-compose 安装 canal

docker-compose 安装 canal

canal 同步特点:

  • 支持 修改,删除,创建等等语句
  • logstash_jdbc 只支持 修改,创建, 不支持删除

配置 mysql my.cnf

# 开启 binlog
log-bin=mysql-bin 

# 选择 ROW 模式
binlog-format=ROW 

# 配置 MySQL replaction 需要定义,不要和 canal 的 slaveId 重复
server_id=1 
创建 复制账号
mysql> show master status;
+------------------+----------+--------------+------------------+-------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000001 |      156 |              |                  |                   |
+------------------+----------+--------------+------------------+-------------------+
1 row in set

mysql> CREATE USER canal IDENTIFIED BY 'canal'; 
Query OK, 0 rows affected

mysql> GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'canal'@'%';
Query OK, 0 rows affected

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected

mysql> 

安装 canal-server

docker-compose.yml 配置文件
[root@blue canal]# cat docker-compose.yml 
version: '3'
 
services: 
  canal-server: 
    image: canal/canal-server:v1.1.5
    container_name: canal-server
    ports: 
      - 11111:11111
    environment: 
      - canal.instance.mysql.slaveId=1234
      - canal.auto.scan=false
      - canal.destinations=test
      - canal.instance.master.address=172.16.xx:3306
      # mysql 复制账号
      - canal.instance.dbUsername=canal
      - canal.instance.dbPassword=canal
      - canal.mq.topic=test
      - canal.instance.filter.regex=esen_approval.apt_approval
    volumes: 
      - $PWD/conf/:/admin/canal-server/conf/
      - $PWD/logs/:/admin/canal-server/logs/

172.16.xx:3306 这个是docker 容器启动的mysql, 注意虚拟机关闭防火墙,不然 canal 连接不上mysql !!

Creating canal-server ... done
Attaching to canal-server
canal-server    | DOCKER_DEPLOY_TYPE=VM
canal-server    | ==> INIT /alidata/init/02init-sshd.sh
canal-server    | ==> EXIT CODE: 0
canal-server    | ==> INIT /alidata/init/fix-hosts.py
canal-server    | ==> EXIT CODE: 0
canal-server    | ==> INIT DEFAULT
canal-server    | Generating SSH1 RSA host key: [  OK  ]
canal-server    | Starting sshd: [  OK  ]
canal-server    | Starting crond: [  OK  ]
canal-server    | ==> INIT DONE
canal-server    | ==> RUN /home/admin/app.sh
canal-server    | ==> START ...
canal-server    | start canal ...
canal-server    | start canal successful
canal-server    | ==> START SUCCESSFUL ...

如果发现后期canal 接收不到 mysql 数据, 进入容器看日志!!,可以是连接不上mysql !!

测试

测试代码: canal demo 代码

================>; binlog[mysql-bin.000002:1123] , name[logstash,t_user] , eventType : UPDATE
------->; before
id : 34    update=false
user_name : hello222ewe    update=false
age : 577    update=false
create_time : 2021-08-11 15:30:58    update=false
update_time : 2021-08-11 15:31:32    update=false
------->; after
id : 34    update=false
user_name : ha    update=true
age : 577    update=false
create_time : 2021-08-11 15:30:58    update=false
update_time : 2021-08-11 15:31:32    update=false

================>; binlog[mysql-bin.000002:1472] , name[logstash,t_user] , eventType : INSERT
id : 38    update=true
user_name : sd    update=true
age :     update=true
create_time :     update=true
update_time :     update=true

================>; binlog[mysql-bin.000002:1774] , name[logstash,t_user] , eventType : DELETE
id : 38    update=false
user_name : sd    update=false
age :     update=false
create_time :     update=false
update_time :     update=false

good luck!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值