canal部署

canal是用java开发的基于数据库增量日志解析,提供增量数据订阅&消费的中间件。目前,canal

主要支持了MySQL的binlog解析,解析完成后才利用canal client 用来处理获得的相关数据。

因此mysql数据库必须开启binlog,查看是否开启:

show variables like 'log_bin'; -- 查看是否开启binlog功能

修改mysql配置文件,开启binlog功能

vi /etc/my.cnf
# 追加内容
log-bin=mysql-bin   #binlog文件名
binlog_format=row   #binlog模式 格式有三种,分别是STATEMENT、MIXED、ROW ;STATEMENT节省空间,会造成数据丢失,ROW 数据不会丢失,但是占用空间,MIXED 前两者的综合,但还有极个别情况数据会丢失
server-id=1         #mysql实例id,不能与canal的slaveId重复
# binlog-do-db=test   #对哪个库起作用

重启mysql

service mysql restart 或systemctl restart mysqld

查看当前创建用户密码的要求

SHOW VARIABLES LIKE 'validate_password%';

set global validate_password_policy=LOW; # 设置密码格式
set global validate_password_length=5;   # 设置密码长度

 创建同步用户canal

create user 'canal'@'%' IDENTIFIED by 'canal';
GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'canal'@'%';
FLUSH PRIVILEGES;

查看用户是否创建成功

use mysql;
select host, user from user;

 canal下载地址:https://github.com/alibaba/canal/releases

上传下载好的压缩文件:canal.deployer-1.1.4.tar.gz 到/usr/local/canal,然后解压

tar -zxvf canal.deployer-1.1.4.tar.gz

修改配置文件

vi conf/example/instance.properties
#数据库信息
canal.instance.master.address=192.168.96.127:3306

#数据库用户和密码
canal.instance.dbUsername=canal
canal.instance.dbPassword=canal

#数据库表同步规则
canal.instance.filter.regex=.*\\..*

mysql数据解析关注的表,perl正则表达式。
多个正则直接以逗号(,)分割,转义符需要双斜杠(\\)
例子:
1、所有表: .* or .*\\..*
2、canal schema 下所有表:canal\\..*
3、canal下的以canal开头的表:canal\\.canal.*
4、canal schema下的一张表:canal.test
5、多个规则组合使用:canal\\..*,mysql.test1,myslq.test2 (此过滤条件只针对row模式的数据有效)

启动,bin目录下

sh bin/startup.sh

启动成功后,可以在logs目录找到日志,查看启动状态:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值