阿里开源mysql监听_基于阿里巴巴Canal框架,TCP协议实现监听Mysql数据变化

本文介绍了如何利用阿里巴巴开源项目Canal监听MySQL数据变化,并通过TCP协议将这些变化同步到Redis。首先,配置MySQL开启binlog日志,然后下载并部署Canal Server,创建Canal用户并授权。接着,启动Canal Server,通过Java代码演示如何建立连接并监听binlog日志,实现数据变更时的Redis同步。
摘要由CSDN通过智能技术生成

在前一篇文章有提到过Canal的原理,所以这里就不做多叙述

Canal是伪装成Mysql的从服务,监听Mysql主服务的binlog日志,实现数据同步,所以我们需要配置开启允许binlog日志主从同步

编辑mysql的配置文件

vim /etc/my.cnf

添加我标记的这段配置

log-bin=/var/lib/mysql/mysql-bin #日志记录到指定位置

binlog-format=ROW #记录只要数据发生修改,就记录到日志中

server_id=1 #mysql主从复制的唯一id,不允许重复

需要注意点:配置一定要放在[mysqld]标签下,否则不生效

1aa62d9fb870e2414880e0dcd3c73066.png

那么如何查看,是否成功开启binlog日志了

show variables like '%log_bin%';

为ON则成功开启binlog日志

6f3254dd5be0a6501c84d486d28528d2.png

我们也可以进入指定的日志目录下,查看日志

cd /var/lib/mysql

如下就是mysql自动生成的binlog日志

d8760adde5c50844bbf8ad0b798e6b3f.png

接下来添加canal账号,或者直接使用自己的Root账号都行

账号不能通过远端添加,只能在内部mysql添加,如果权限足的话,也可以远端添加用户

drop user 'canal'@'%'; ##注意,这里如果没有创建canal账号,则会报错,所以没有创建则直接忽略这一步

CREATE USER 'canal'@'%' IDENTIFIED BY 'canal';

grant all privileges on *.* to 'canal'@'%' identified by 'canal';

flush privileges;

如下图,我这里已经添加用户成功了

aac3632ea3c54e8fb1fb2644fde73c06.png

进入mysql库的user表,查看刚所添加的用户的权限是否都是Y,如不是,否则接下来的操作会很不方便

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值