一、开启同步数据库的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)项目配置文件配置本地同步数据库