mysql数据实时同步到Elasticsearch注意事项

4k显示器电竞鼠标 · · 772 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

网上有很多推荐mysql数据同步到Elasticsearch的方案,有大哥canal,python的mysqlsmom,还有go的go-mysql-elasticsearch,在我自己项目中用的是go-mysql-elasticsearch,给大家随便讲讲我遇到的一些小问题,先看看官方提到的注意事项。

  • ES的版本

关于ES的版本官方支持为

MySQL supported version < 8.0
ES supported version < 6.0

我的ES当前版本在7.7.0下运行依然运行成功

  • 开启mysql binlog日志,且必须为ROW格式

通常配置文件都是在mysql的my.cnf,不知道在哪的可以用
whereis my.cnf找到,然后把binlog_format配置 cat /etc/my.cnf|grep binlog_format修改成ROW,重启!

show variables like '%binlog_format%' 

  • mysqldump没有同步成功数据

执行./bin/go-mysql-elasticsearch -config=./etc/river.toml
命令开始后首先会执行mysqldump同步数据,如果info提示

[2020/07/08 10:40:23] [info] dump.go:180 skip dump, use last binlog replication pos (mysql-bin.000004, 4) or GTID set <nil>

说明mysqldump同步并没有成功,很有可能是因为./etc/river.toml里的data_dir指定的目录没有删除,这时候去删除这个目录里面的master.info,再次运行可以看到已经dump成功,参考这个https://github.com/siddontang/go-mysql-elasticsearch/issues/115


有疑问加站长微信联系(非本文作者)

本文来自:Segmentfault

感谢作者:4k显示器电竞鼠标

查看原文:mysql数据实时同步到Elasticsearch注意事项

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

772 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传