canal监听不到mysql变化_Canal 详解

aa5c88e240b12946aad2de5cbabd5c18.png

一、什么是canal

官网的介绍

canal,译意为水道/管道/沟渠,主要用途是基于 MySQL 数据库增量日志解析,提供增量数据订阅和消费。

b04a31974393c8731e3c1a5968431696.png

      Canal 是阿里巴巴开源的一套分布式数据库同步系统,目前主要支持 MySQL、RDS。Canal 的主要原理是伪装成 MySQL 的 Slave 节点,监听 MySQL 主库的 binlog 文件,根据 binglog 将数据库事件发送到 MQ 中,消费端可以订阅 MQ 中的消息。为了方便 Canal 的运维人员,阿里还提供了 Canal Admin 这个运维平台,使用户可以快速和安全的操作。

二、canal能做什么

基于日志增量订阅&消费实现数据同步,canal的数据同步不是全量的,而是增量。基于binary log增量订阅和消费,canal可以做:

  1. 数据库镜像

  2. 数据库实时备份

  3. 多级索引 (卖家和买家各自分库索引)

  4. search build

  5. 业务cache刷新

  6. 价格变化等重要业务消息

三、如何搭建canal

3.1 首先有一个MySQL服务器

当前的 canal 支持源端 MySQL 版本包括 5.1.x , 5.5.x , 5.6.x , 5.7.x , 8.0.x

3.1.1 在MySQL中需要创建一个用户,并授权:

-- 创建用户,用户名:canal,密码:canal@123456

create user canal identified by 'canal@123456';

-- 为canal用户赋予replication权限,*.*标识所有库

grant SELECT,REPLICATION SLAVE, REPLICATION CLIENT on *.* to 'canal'@'%' identified by 'canal@123456';

-- 修改完毕立即生效

flush privileges;

3.1.2 使用命令查看数据库是否开启binlog模式:

show variables like 'log_%';


显示如下图:

a2253d2fe7e3b5411db842f56b8d5453.png

log_bin属性值为ON,则binlog模式开启;为OFF则binlog模式关闭。

若binlog模式关闭,则在MySQL配置文件my.cnf设置如下信息:

[mysqld]
log-bin=mysql-bin # 开启 binlog
binlog-format=ROW # 选择 ROW 模式
server_id=1 # 配置 MySQL replac
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值