canal同步数据到es(windows)

 1、下载canal的各个组件canal-servercanal-adapter下载地址Releases · alibaba/canal · GitHub

2、修改mysql配置文件

 canal会模拟MySQL主库和从库的交互协议,从而伪装成MySQL的从库,然后向MySQL主库发送dump协议,MySQL主库收到dump请求会向canal推送binlog,canal通过解析binlog将数据同步到其他存储中去。

修改mysql配置文件 开启binlog日志,并且以ROW方式,开启主从模式 以及logbin的文件位置 如下:

 记得重启下mysql   查看MySQL配置是否开启

SHOW VARIABLES LIKE 'binlog-format'; -- 结果应该是ROW
SHOW VARIABLES LIKE 'log_bin'; -- 结果应该是 ON
SHOW VARIABLES LIKE '%log%'; -- 所有binlog信息

创建一个给canal用的一个用户

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

3、canal-server(canal.deployer-1.1.6)解压修改配置

canal-server的配置在\canal.deployer-1.1.6\conf\example文件下的instance.properties

修改了其中

# username/password
canal.instance.dbUsername=root
canal.instance.dbPassword=123456

bin目录下运行startup.bat

 canal.deployer-1.1.6\logs\example下查看example.log

canal.deployer启动成功 

 4、canal-adapter解压修改配置

canal-adapter的配置文件在canal.adapter-1.1.6\conf文件下的application.yml

 

 注意127.0.0.1:9200前要加http://

 在canal.adapter-1.1.6\conf\es6文件下创建yml文件


name_index索引要提前在es中设置好

 bin目录下startup.bat

 启动成功adapter.log

全量同步dao 

curl http://localhost:8081/etl/es6/name.yml -X POST

新增修改mysql会同步到es,adapter.log会打印出修改日志,

遇到的几个问题

1、如果adapter.log会打印出修改数据库的日志,只能全量同步,不能增量同步。

instance.properties中的canal.instance.filter.regex=.*\\..*试试。

2、llegalArgumentException: Illegal character in scheme name at index 0: 127.0.0.1:9200

3、destination:example[java.io.IOException: Received error packet: errno = 1236, sqlstate = HY000 errmsg = Could not find first log file name in binary log index file

MySQL中show master status;

执行

reset master;

flush logs;

 删除canal.deployer-1.1.6\conf\example文件下meta.dat文件后重启

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值