cannel mysql,SpringBoot整合Cannal

本文介绍了如何使用阿里巴巴的开源项目Cannal进行MySQL数据库同步。Cannal通过监听MySQL binlog来获取数据变化,文章详细讲解了在Linux上配置Cannal环境、设置MySQL参数、创建远程登录账号以及在Windows端编写Java代码实现数据同步的步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

简介

canal 是阿里巴巴的一个开源项目,基于java实现,整体已经在很多大型的互联网项目生产环境中使用,包括阿里、美团等都有广泛的应用,是一个非常成熟的数据库同步方案,基础的使用只需要进行简单的配置即可。canal是通过模拟成为mysql 的slave的方式,监听mysql 的binlog日志来获取数据,binlog设置为row模式以后,不仅能获取到执行的每一个增删改的脚本,同时还能获取到修改前和修改后的数据,基于这个特性,canal就能高性能的获取到mysql数据数据的变更。

以下实现一个使用cannal监控Linux数据库,远程LInux的数据库数据发生变化,本地的windows相应的数据库也发生相应的变化

Linux中Cannal环境配置

查看MySQL是否开启log_bin

mysql> show variables like 'log_bin';

+---------------+-------+

| Variable_name | Value |

+---------------+-------+

| log_bin | OFF |

+---------------+-------+

1 row in set (0.00 sec)

如果log_bin关闭,修改MySQL配置开启log_bin

1,修改 mysql 的配置文件 my.cnf

vi /etc/my.cnf

追加内容:

log-bin=mysql-bin #binlog文件名

binlog_format=ROW #选择row模式

server_id=1 #mysql实例id,不能和canal的slaveId重复

2,重启 mysql:

service mysql restart

3,登录 mysql 客户端,查看 log_bin 变量

mysql> show variables like 'log_bin';

+---------------+-------+

| Variable_name | Value |

+---------------+-------+

| log_bin | ON|

+---------------+-------+

1 row in set (0.00 sec)

image-20200602102429743

注意:如果自己使用的MySQL账户没有开启远程登录功能(例如root账户默认没有远程登录功能)是无法做到数据同步的,如果能够使用MySQL客户端工具账号密码远程连接Linux上的MySQL就说明该账户有远程登录功能,反之需要给创建一个能够远程登录MySQL的账号

创建一个具有远程登录功能的账号

CREATE USER 'canal'@'%' IDENTIFIED BY 'canal'; GRANT SHOW VIEW, SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON . TO 'canal'@'%'; FLUSH PRIVILEGES; //刷新权限

授予账号远程登录权限

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'WITH GRANT OPTION FLUSH PRIVILEGES; //刷新权限

下载cannel,将cannell安装的Linux,修改cannal的配置文件,cannal解压后的目录结构如图所示

a57f1fe8c7c35d8da47d7540c9c67966.png

1. 解压文件

tar -zxvf canal.deployer-1.1.4.tar.gz -C cannal-1.1.4

2.解压后进入cannal的配置文件,修改配置文件

vi conf/example/instance.propertie

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值