Canal(2):Canal 部署与配置

1 mysql数据库配置

1.1新建数据库

1.2 新建测试表

CREATE TABLE user_info(
    `id` VARCHAR(255),
    `name` VARCHAR(255),
    `sex` VARCHAR(255)
);

1.3 修改配置文件开启 Binlog

vim /etc/my.cnf

server-id=4
log-bin=mysql-bin
binlog_format=row
binlog-do-db=caneltestdb

1.4 重启MySQL使配置生效

systemctl restart mysqld

到/var/lib/mysql 目录下查看初始文件大小 154

1.5 测试 Binlog 是否开启

插入数据

INSERT INTO user_info VALUES('1001','zhangsan','male');

再次到/var/lib/mysql 目录下,查看 index 文件的大小

1.6 赋权限

在 MySQL 中执行

mysql> set global validate_password_length=4;
mysql> set global validate_password_policy=0;
mysql> GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'canal'@'%' IDENTIFIED BY 'canal' ;

2 canel部署与配置

2.1 下载并解压 Jar 包

https://github.com/alibaba/canal/releases

这边使用的是 canal.deployer-1.1.6.tar.gz版本

拷贝到/opt/sortware 目录下,然后解压到/opt/module/canal 包下(目录自己定)

注意:canal 解压后是分散的,我们在指定解压目录的时候需要将 canal 指定上

2.2 修改 canal.properties 的配置

vim  conf/canal.properties

修改内容如下:

说明:这个文件是 canal 的基本通用配置,canal 端口号默认就是 11111,修改 canal 的输出 model,默认 tcp,改为输出到 kafka

多实例配置如果创建多个实例,通过前面 canal 架构,我们可以知道,一个 canal 服务中可以有多个 instance,conf/下的每一个 example 即是一个实例,每个实例下面都有独立的配置文件。默认只有一个实例 example,如果需要多个实例处理不同的 MySQL 数据的话,直接拷贝出多个 example,并对其重新命名,命名和配置文件中指定的名称一致,然后修改canal.properties 中的 canal.destinations=实例 1,实例 2,实例 3。

2.3 修改 instance.properties

我们这里只读取一个 MySQL 数据,所以只有一个实例,这个实例的配置文件在conf/example目录下

vim conf/example/instance.properties

(1)配置 MySQL 服务器地址

注意:

        canal.instance.mysql.slaveId的值不能和mysql中配置的server-id相同。 

(2)配置连接MySQL的用户名和密码,默认就是我们前面授权的canal

 2.4 启动canal

sh bin/startup.sh

启动成功如下

猜你喜欢

转载自blog.csdn.net/u013938578/article/details/130187965