概述
title: canal安装
tags: [canal]
date: 2020-01-19 10:00:00
介绍
canal [k?‘næl],主要用途是基于 MySQL 数据库增量日志解析,提供增量数据订阅和消费。支持数据同步到elasticsearch、redis、kafka等服务。
当前的 canal 支持源端 MySQL 版本包括 5.1.x , 5.5.x , 5.6.x , 5.7.x , 8.0.x
canal 工作原理
canal 模拟 MySQL slave 的交互协议,伪装自己为 MySQL slave ,向 MySQL master 发送dump 协议
MySQL master 收到 dump 请求,开始推送 binary log 给 slave (即 canal )
canal 解析 binary log 对象(原始为 byte 流)
canal安装
主机环境:
canal+mysql:192.168.40.100
系统环境:
jdk1.8.0_221
MySQL5.5.64
canal 服务端:canal.deployer-1.1.4.tar.gz
canal 客户端测试:canal.example-1.1.4.tar.gz
canal web管理界面:canal.admin-1.1.4.tar.gz
canal 适配器:canal.adapter-1.1.4.tar.gz
安装步骤:
安装mysql,并开启bin-log
安装jdk
安装canal.deployer,修改配置
安装canal.example测试服务是否成功
mysql安装
canal的原理是基于mysql binlog技术,所以这里一定需要开启mysql的binlog写入功能,并且配置binlog模式为row,重启mysql。
vim /etc/my.cnf
[mysqld]
log-bin=mysql-bin #添加这一行就ok
binlog-format=ROW #选择row模式
server_id=1 #配置mysql replaction需要定义,不能和canal的slaveId重复
登录mysql查看bin-log是否开启
mysql> show variables like ‘binlog_format‘;
mysql> show variables like ‘log_bin‘;
配置canal服务使用的账号权限
# 创建用户授权
mysql> CREATE USER canal IDENTIFIED BY ‘canal‘;
mysql> GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO ‘canal‘@‘%‘;
mysql> FLUSH PRIVILEGES;
# 查看授权
mysql> show grants for ‘canal‘;
jdk安装
canal.deployer安装
# 下载地址
wget https://github.com/alibaba/canal/releases/download/canal-1.1.4/canal.deployer-1.1.4.tar.gz
mkdir -p /data/{canal.deployer,canal.admin,canal.example}
tar xf canal.deployer-1.1.4.tar.gz -C /data/canal.deployer
配置文件说明:
conf/canal.properties:canal全局配置文件
conf/example/instance.properties:一个数据源配置文件
logs/canal/canal.log:canal.deployer服务日志
logs/example/example.log:数据源日志
修改配置
vim conf/example/instance.properties
# 数据库连接地址
canal.instance.master.address=127.0.0.1:3306
?
# 数据库账号
canal.instance.dbUsername=canal
canal.instance.dbPassword=canal
?
# mysql 数据解析关注的表,Perl正则表达式.多个正则之间以逗号(,)分隔,转义符需要双斜杠(\)
# 常见例子:
# 1. 所有表:.* or .*\..*
# 2. canal schema下所有表: canal\..*
# 3. canal下的以canal打头的表:canal\.canal.*
# 4. canal schema下的一张表:canal\.test1
# 5. 多个规则组合使用:canal\..*,mysql.test1,mysql.test2 (逗号分隔)
# table regex:白名单,指定收集的库或表
canal.instance.filter.regex=.*\..*
# table black regex:黑名单
canal.instance.filter.black.regex=
注:
一个example目录为一个数据源,如果需要配置多个数据源,可以复制example为其它名字,再修改
example目录为canal默认数据源,不能改名或删除,否正会报错
canal每5秒,自动加载conf下的数据源目录,配置数据源不需要重启服务
# 启动服务端口为11111,11112
./bin/startup.sh
./bin/stop.sh
canal.example安装
# 下载地址
wget https://github.com/alibaba/canal/releases/download/canal-1.1.4/canal.example-1.1.4.tar.gz
tar xf canal.example-1.1.4.tar.gz -C /data/canal.example
cd /data/canal.example
./bin/startup.sh
# 监控example日志
tailf logs/example/entry.log
注:canal.example服务只能收集example数据源操作数据,如果是新增的数据源,需要java编写客户端获取数据。
测试服务
监控example日志
操作mysql增加、删除、更新
example日志显示相应的bin-log日志
至此,最简单canal服务搭建成功
原文:https://www.cnblogs.com/hxqxiaoqi/p/12858737.html
最后
以上就是清秀唇彩为你收集整理的mysql canal 安装测试_canal安装的全部内容,希望文章能够帮你解决mysql canal 安装测试_canal安装所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复