mysql与es怎么结合 es和mysql结合( 三 )


根据上面的解释,以及 canal 提供的版本信息,我们在使用 canal 的时候,首选要安装一个 canal.deployer-1.1.4.tar.gz 进行解析 MySQL 的 binlog 日志 。
下载后,复制 canal.deployer-1.1.4.tar.gz 到 MySQL 主机上,比如放在 /usr/local/soft/目录下 。然后依次执行下面的命令:
然后修改 canal 的配置文件 vim conf/example/instance.properties
这三项改成你自己的 , 比如我的配置如下:
然后保存并退出 。(VI 模式下,按 Esc 输入 :wq 回车退出 。)
接着,我们检查一下 MySQL 的配置 。确定版本和是否开启了 binlog 日志,以及日志格式 。
canal 支持 binlog 格式为 ROW 的模式 。如果你没开启 binlog,并且格式是非 row 的 , 建议修改一下 mysql 的配置文件 。
执行 mysql –help | grep my.cnf 找到 mysql 的 my.cnf 文件 。
执行 vim /etc/my.cnf 命令 。添加下面 3 个配置 。
然后保存并退出 。
接着执行 sudo service mysqld restart 重启 MySQL 。
需要注意的是你的 mysql 用户,必须要有 REPLICATION SLAVE 权限 。该权限授予 slave 服务器以该账户连接 master 后可以执行 replicate 操作的权利 。
如果没有权限 , 则使用 root 账户登录进 MySQL,执行下面的语句,创建用户,分配权限 。
MySQL 启动后,就可以开启 canal 服务了 。
开启后,观察 canal 服务的日志,确保服务正常 。
查看 canal 的日志
确定没有问题后,开始编写我们的测试程序 。
pom.xml 中导入下面的依赖 。
使用JAVA进行测试
然后执行 main 方法 。你再修改修改 MySQL 中的数据 , 你会发现所有改变都同步过来了 。上面是使用的Java代码进行运行,如果想用canal.adapter来进行运行可以下载
放入服务器中,依次执行下面命令
然后修改配置文件 :
然后将需要运行存储到es的的yml文件放入到
目录下 。例如:
然后开启canal-adapter服务
/usr/local/soft/canal-adapter/bin/startup.sh
查看 canal-adapter 的日志,确定没有问题后修改数据 就可以同步到es了
注意:
1、canal-adapter自带mysql连接使用的5.x的,如果自己安装的是高版本的mysql需要自己去/usr/local/soft/canal-adapter/lib增加对应的jar包
2、因项目中同步es使用的sql中有数据库中没有的字段,导致原生程序一直报异常,后修改源码中
加了一个判断后才可以
3、es中使用的date字段类型和数据库中不一致,所以这里又修改了部分源码兼容我们项目中的类型
可以根据各自情况修改 。
mysql与es怎么结合的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于es和mysql结合、mysql与es怎么结合的信息别忘了在本站进行查找喔 。

推荐阅读