通过Canal将MySQL数据同步到elasticsearch (mysql8+canal1.1.5+canal-adapter1.1.5+elasticsearch6.7.0+ik6.8.6)

        经过几天的的深入研究(网上的文档很多,但是坑不少,少一个配置可能就走入了死胡同),特此将我部署的过程意义道来(参考文档通过Canal将MySQL数据同步到阿里云Elasticsearch - 检索分析服务Elasticsearch版 - 阿里云

         以下仅为学习使用(windows系统),linux系统稍后就写

步骤一:准备MySQL数据源

        创建数据库canal_manager(canal 官方提供,        canal/canal_manager.sql at master · alibaba/canal · GitHub),创建数据库表es_test 

my.cnf: (新增部分)

#开启日志
log_bin = mysql‐bin
#设置服务id
server_id = 1
#不记录每条sql语句的上下文信息,仅需记录哪条数据被修改了,修改成什么样了
binlog_format = ROW

至此mysql部分结束

步骤二:下载安装es+ik并创建索引(相当于是mysql的库表,没有这个还玩个鸟)

1、官网Download Elasticsearch | Elastic

在这选择以前的版本 建议不要下最新版本,因为好多依赖他的第三方还没来得及去做兼容更新 

直接解压就可以用了 在Elasticsearch\elasticsearch-6.7.0\bin 下直接双击elasticsearch.bat就启动了,最后在Elasticsearch\elasticsearch-6.7.0\config 下找elasticsearch.yml 修改

 后面adapter调用时候使用,坑1

 启动后在浏览器输入http://localhost:9200/出现

 即为成功

 2、创建索引

 在postman上执行也可以

 http://localhost:9200/a

只是我的样例不要照抄a改为es_estest  和上面创建的表保持一致,要是乱起名字不就乱套了吗

步骤三:安装并启动Canal-server

下载地址Releases · alibaba/canal · GitHub

选择合适的版本 

在config修改三个地方

启动 看logs里面canal\logs\example 日志没有报错就hi成功了

步骤三:安装并启动Canal-adapter(重要)

 下载地址Releases · alibaba/canal · GitHub

要和上面的canal版本一致

下载后修改配置文件application.yml

 

 cluster.name要和刚才修改的es名字一致

修改配置文件bootstrap.yml(网上好多都没介绍这一步,不知道为啥,但是这个不修是真的启动不了)

 修改es6(如果你的es是7x是就es7 我是这么认为的)

至此所有配置已经结束启动adapter 然后修改数据库es_test 再浏览器输入

http://localhost:9200/es_test/_search就可以看到效果了

注意:数据库主键一定要和es创建的主键一致且不能为空,否则会报错

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值