基于阿里的Canal实现数据同步

一、开启同步数据库的binlog功能
(1)开启同步数据端的数据库服务(比如我的将一号虚拟机上的mysql数据库作为同步操作数据库)

systemctl start mysql.service
mysql -h192.168.137.100 -uroot -p123

(2)检查mysql的binlog功能是否开启(可见是OFF,关闭的)

MySQL [(none)]> show variables like 'log_bin';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| log_bin       | OFF   |
+---------------+-------+

(3)开启binlog功能,修改my.cnf配置文件:vim /etc/my.cnf
在文件中添加如下内容后,重启mysql服务,在查看mysql的binlog功能。可见已经开启。

log-bin=mysql-bin
binlog_format=ROW
server_id=1
MySQL [(none)]> show variables like 'log_bin';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| log_bin       | ON    |
+---------------+-------+

二、安装canal工具
(1)下载地址:https://github.com/alibaba/canal/releases
(2)下载文件:canal.deployer-1.1.4.tar.gz
(3)文件传到 /usr/local/canal文件夹下,解压

tar zxvf canal.deployer-1.1.4.tar.gz 

(4)修改配置文件vi conf/example/instance.properties
修改如下内容为数据库连接:
canal.instance.master.address=192.168.137.100:3306
canal.instance.dbUsername=root
canal.instance.dbPassword=123
(5)启动canal数据同步工具 cd bin
[root@localhost bin]# ./startup.sh

三、测试项目准备
(1)新建项目,引入如下依赖

<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--mysql-->
<dependency>
   <groupId>mysql</groupId>
   <artifactId>mysql-connector-java</artifactId>
</dependency>

<dependency>
   <groupId>commons-dbutils</groupId>
   <artifactId>commons-dbutils</artifactId>
</dependency>
<dependency>
	<groupId>org.springframework.boot</groupId>
 	<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
   <groupId>com.alibaba.otter</groupId>
   <artifactId>canal.client</artifactId>
</dependency>

(2)项目配置文件配置本地同步数据库

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值