canal详细配置!!!

当前安装版本1.1.5版本

1、修改canal中任何文件前,必须关闭运行中canal,命令:bin/stop.sh

因为运行时,一直产生文件存储,所以必须关闭;

2、开启运行canal,命令:bin/start.sh

如果上一次正常关闭,直接开启

如果上一次非正常关闭,必须先删除 meta.dat、h2.mv.db 文件,还有更新bin-log文件编号、具体位置节点、是的canal能够监听到,因为再次开启时,会有数据冲突;

正常关闭canal,meta.dat会有记录

 

开始配置

1、给mysql开启支持bin-log日志;

修改my.cnf,命令:sudo vim /etc/my.cnf

在[mysql_id]下添加

server-id=1

log-bin=mysql-bin

binlog_format=row

2、重启 MySQL 使配置生效

sudo systemctl restart mysqld

3、检查bin-log日志是否开启

show variables like 'log_bin';

插入一条语句查询bin-log对应大小是否变化

show binary logs;

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

show binary logs;

对比两次bin-log日志大小是否变化了,如果变化了,则开启bin-log日志服务;

创建表

CREATE TABLE user_info(

`id` VARCHAR(255),

`name` VARCHAR(255),

`sex` VARCHAR(255)

);

3、给mysql中创建新用户并授权

GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'canal'@'%' IDENTIFIED BY 'canal' ;

注意,此语句:授权,如果没有此用户,会自动创建该用户;

展示用户权力,命令:show grants for '用户名'@'主机名';

注意:主机名就是给用户授权时所写主机名;

为什么创建用户名且密码都为canal呢?因为canal服务端配置文件就用了账号canal、密码canal用来监控mysql,以获取bin-log日志;

刷新权限;

flush PRIVILEGES;

4、解压安装canal包,略过

5、修改canal.properties文件

若使用tcp模式,则canal.properties文件不用修改

若如果使用kafka模式,修改canal.properties中

修改1 改为kafka

# tcp, kafka, rocketMQ, rabbitMQ

canal.serverMode = kafka

修改2 指定kafka消费对所在ip地址,注意canal内置一套kafka,很可能ip就是一个,主要变化端口即可;

##################################################

######### Kafka #############

##################################################

kafka.bootstrap.servers = 127.0.0.1:9092

6、修改examp文件下instance.properties文件

如tcp模式

# position info 此处修改三处

#mysql所在服务中ip:端口

canal.instance.master.address=192.168.171.148:3306

#bin-log日志对应编号,命令:show binary logs; 查询一下

新认知:bin-log日志达到一定大小后,会自动创建新的日志,编号自动累计,此时配置编号是旧的没关系,会有指针寻找到最新位置;

canal.instance.master.journal.name=mysql-bin.000001

#对应bin-log日志位置节点,命令:show master status; 查询最新节点位置,多点击几次,刷新至稳定位置节点,也就是当前bin-log日志大小,也就某个指针节点,让canal能找到位置即可;

canal.instance.master.position=2755

# username/password 修改授权mysql账号密码,用根用户也行;

canal.instance.dbUsername=canal

canal.instance.dbPassword=canal

若为kafka模式

除了以上修改外,还要修改下面topic主题;

# mq config

#指定对应消费节点

canal.mq.topic=example

在logs文件中,成功指标;

canal.log日志中显示canal开启运行成功

meta.log日志中显示连接canal运行并监控对应msql中bin-log日志,表示监控成功;

example.log日志显示客户端消费canal推出来的消息状态;

mysql8.0 创建用户 GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO ‘canal‘@‘%‘ IDENTIFIE 报错_GOD_WAR的博客-CSDN博客

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要将 Canal 集成到 RabbitMQ 集群中,需要进行以下步骤: 1. 安装 RabbitMQ 集群,并创建一个 Exchange。 2. 安装并配置 Canal,可以参考官方文档进行操作。 3. 在 Canal配置文件中,需要指定 RabbitMQ 集群的地址、Exchange 名称、用户名和密码等信息,例如: ``` canal.instance.mode = rabbitmq canal.instance.rabbitmq.addresses = rabbitmq1:5672,rabbitmq2:5672 canal.instance.rabbitmq.exchange = myexchange canal.instance.rabbitmq.username = myuser canal.instance.rabbitmq.password = mypassword canal.instance.rabbitmq.virtualHost = myvhost ``` 其中,`canal.instance.mode` 指定 Canal 的模式为 RabbitMQ,`canal.instance.rabbitmq.addresses` 指定 RabbitMQ 集群的地址,`canal.instance.rabbitmq.exchange` 指定 Exchange 名称,`canal.instance.rabbitmq.username` 和 `canal.instance.rabbitmq.password` 分别指定连接 RabbitMQ 的用户名和密码,`canal.instance.rabbitmq.virtualHost` 指定 RabbitMQ 的虚拟主机名称。 4. 启动 Canal Server,并确保它能够正常连接到 MySQL 数据库。 5. 在 MySQL 数据库中进行数据变更操作,例如插入一条新记录。 6. Canal Server 会将该数据变更事件捕获,并将其转换成 RabbitMQ 的消息格式。 7. 最后,将消息推送到 RabbitMQ 中,等待消费者进行消费。 注意,由于 Canal 和 RabbitMQ 都是开源项目,其使用方式可能随时发生变化。建议在实际使用之前,先仔细阅读官方文档,并进行相关的测试。同时,如果要将 Canal 集成到 RabbitMQ 集群中,需要确保 RabbitMQ 集群的所有节点都能够正常工作,并且 Exchange 的绑定关系设置正确。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值