经过几天的的深入研究(网上的文档很多,但是坑不少,少一个配置可能就走入了死胡同),特此将我部署的过程意义道来(参考文档通过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上执行也可以
只是我的样例不要照抄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创建的主键一致且不能为空,否则会报错