几篇关于MySQL数据同步到Elasticsearch的文章---第四篇:使用go-mysql-elasticsearch同步mysql数据库信息到ElasticSearch
文章转载自:
https://www.cnblogs.com/dalaoyang/p/11018541.html
1.go-mysql-elasticsearch简介
go-mysql-elasticsearch是一个将MySQL数据自动同步到Elasticsearch的服务。
它首先使用mysqldump获取原始数据,然后用binlog增量地同步数据。
github地址:https://github.com/siddontang/go-mysql-elasticsearch
这里有几点注意事项:
1.Mysql的binlog必须是ROW模式,不然启动会报错。
2.连接Mysql的用户权限需要大一些。
2.安装
2.1 安装go
安装go
yum install -y go
安装godep
go get github.com/tools/godep
下载go-mysql-elastisearch插件
go get github.com/siddontang/go-mysql-elasticsearch
进入对应目录,比如我使用的如下目录/root/go/src/github.com/siddontang/go-mysql-elasticsearch
cd /root/go/src/github.com/siddontang/go-mysql-elasticsearch
编译
make
2.2 Mysql开启binlog
接下来需要在mysql中开启binlog,首先查询一下是否开启了binlog。
进入mysql
mysql -uroot -p
输入密码,然后输入如下命令查看binlog开启状态
show variables like '%log_bin%';
如图所示,ON为开启了,如果没有开启的话为OFF。
如果没有开启的话,需要在my.cnf配置中添加如下配置(其中server-id可以根据情况设置,这里设置为1,log-bin为日志位置,一定要给日志写的权限,不然会报错,binlog_format为模式,这里必须为ROW):
server-id=1
log-bin=/usr/local/mysql-log/mysql-bin.log
binlog_format="ROW"
设置完成后重启mysql.
service mysqld restart
如图重启成功,如果失败可以查看一下错误日志,这里不做过多介绍。
3.配置go-mysql-elasticsearch
需要配置一下go-mysql-elasticsearch,样例在:https://github.com/siddontang/go-mysql-elasticsearch/blob/master/etc/river.toml
本文测试的配置文件内容如下:
MySQL 配置:地址,用户名,密码
my_addr = "ip:3306"
my_user = "root"
my_pass = "***"
Elasticsearch地址
es_addr = "ip:端口"
存储数据的位置
data_dir = "./var"
Inner Http status address
stat_addr = "127.0.0.1:12800"
pseudo server id like a slave
server_id = 1001
mysql or mariadb
flavor = "mysql"
mysql备份文件,如果不设置或设置为空,则跳过
mysqldump = "mysqldump"
minimal items to be inserted in one bulk
bulk_size = 128
force flush the pending requests if we don't have enough items >= bulk_size
flush_bulk_time = "200ms"
Ignore table without primary key
skip_no_pk_table = false
MySQL数据源,schema:数据库,tables:表
[[source]]
schema = "test"
tables = ["link_info"]
[[rule]]
schema = "test"
table = "link_info"
index = "test_mysql2"
type = "link_info"
4.运行go-mysql-elasticsearch
配置完成后,运行go-mysql-elasticsearch
bin/go-mysql-elasticsearch -config=river.toml
如图所示运行成功。
5.检验
查看es-head,如图
数据都存在,然后修改id为5的数据,查看go-mysql-elasticsearch控制台,果然监听到了变化,如图
在次查看es-head,如图,数据也变化了。
6.总结
由于没上过生产,所以只对我个人测试使用进行评价,安装上和数据同步感觉很友好,因为结合binlog的原因,可以实现同步增删改。对于网上说的日志很少和不成熟等说法,这里不评价。

几篇关于MySQL数据同步到Elasticsearch的文章---第四篇:使用go-mysql-elasticsearch同步mysql数据库信息到ElasticSearch的更多相关文章
- 使用canal增量同步mysql数据库信息到ElasticSearch
本文介绍如何使用canal增量同步mysql数据库信息到ElasticSearch.(注意:是增量!!!) 1.简介 1.1 canal介绍 Canal是一个基于MySQL二进制日志的高性能数据同步系 ...
- 使用go-mysql-elasticsearch同步mysql数据库信息到ElasticSearch
本文介绍如何使用go-mysql-elasticsearch同步mysql数据库信息到ElasticSearch. 1.go-mysql-elasticsearch简介 go-mysql-elasti ...
- 使用logstash同步mysql数据库信息到ElasticSearch
本文介绍如何使用logstash同步mysql数据库信息到ElasticSearch. 1.准备工作 1.1 安装JDK 网上文章比较多,可以参考:https://www.dalaoyang.cn/a ...
- 几篇关于MySQL数据同步到Elasticsearch的文章---第五篇:logstash-input-jdbc实现mysql 与elasticsearch实时同步深入详解
文章转载自: https://blog.csdn.net/laoyang360/article/details/51747266 引言: elasticsearch 的出现使得我们的存储.检索数据更快 ...
- 几篇关于MySQL数据同步到Elasticsearch的文章---第三篇:logstash_output_kafka:Mysql同步Kafka深入详解
文章转载自: https://mp.weixin.qq.com/s?__biz=MzI2NDY1MTA3OQ==&mid=2247484411&idx=1&sn=1f5a371 ...
- ElasticSearch5+logstash的logstash-input-jdbc实现mysql数据同步
在实现的路上遇到了各种坑,再次验证官方文档只能产考不能全信! ElasticSearch安装就不说了上一篇有说! 安装logstash 官方:https://www.elastic.co/guide/ ...
- flink-cdc同步mysql数据到hive
本文首发于我的个人博客网站 等待下一个秋-Flink 什么是CDC? CDC是(Change Data Capture 变更数据获取)的简称.核心思想是,监测并捕获数据库的变动(包括数据 或 数据表的 ...
- MySQL 数据备份与还原的示例代码
MySQL 数据备份与还原的示例代码 这篇文章主要介绍了MySQL 数据备份与还原的相关知识,本文通过示例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下 一.数据备份 1.使用 ...
- [转载]ubuntu下如何更改mysql数据存放路径
http://www.gaojinbo.com/ubuntu%E4%B8%8B%E5%A6%82%E4%BD%95%E6%9B%B4%E6%94%B9mysql%E6%95%B0%E6%8D%AE%E ...
随机推荐
- DeiT:注意力也能蒸馏
DeiT:注意力也能蒸馏 <Training data-efficient image transformers & distillation through attention> ...
- 图的存储结构大赏------数据结构C语言(图)
图的存储结构大赏------数据结构C语言(图) 本次所讲的是常有的四种结构: 邻接矩阵 邻接表 十字链表 邻接多重表 邻接矩阵 概念 两个数组,一个表示顶点的信息,一个用来表示关联的关系. 如果是无 ...
- raspberrypi系统在加入k8s作为node节点时遇到的问题
新买的树莓派4b到货后就迫不及待的烧录上raspberrypi系统,将新派加入我的k8s集群,期间遇到了点小挫折,好歹也一个一个解决了: 一.kubelet版本不对导致无法加入k8s集群 在执行kub ...
- nodejs学习总结01
主流渲染引擎介绍1.渲染引擎又叫 排版引擎 或 浏览器内核 .(双内核:执行html和css的)2,主流的渲染引擎有**Chrome浏览器**:Blink引壁(WebKit的一个分支)**Safari ...
- Veux mapState、mapGetters、mapActions、mapMutations && Vuex命名空间
1 # 一.四个map方法的使用 2 # 1.mapState方法:用于帮助我们映射state中的数据为计算属性 3 computed:{ 4 // sum(){ 5 // return this.$ ...
- 11中javascrip教程教不到的小技巧
1.过滤唯一值 Set对象类型是在ES6中引入的,配合展开操作...一起,我们可以使用它来创建一个新数组,该数组只有唯一的值. 1 const array = [1, 1, 2, 3, 5, 5, 1 ...
- python-GUI键盘小工具
一.tkinter GUI界面 二.实现功能 连接设备.设备上电.设备使能.键盘按键控制关节移动.配置关节移动速度和角度 三.python源码 1 #coding=utf-8 2 import ms ...
- SpringBoot接收MultipartFile文件,并保存文件
package com.hrw.controller; import com.hrw.pojo.Result; import org.apache.tomcat.util.http.fileuploa ...
- 痞子衡嵌入式:浅析IAR下调试信息输出机制之半主机(Semihosting)
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家分享的是IAR下调试信息输出机制之半主机(Semihosting). 在嵌入式世界里,输出打印信息是一种非常常用的辅助调试手段,借助打印信息,我 ...
- HMS Core Discovery第17期回顾|音随我动,秒变音色造型师
HMS Core Discovery第17期直播<音随我动,秒变音色造型师>,已于8月25日圆满结束,本期直播我们邀请了HMS Core音频编辑服务的产品经理.技术专家以及创新娱乐类应用& ...