几篇关于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 ...
随机推荐
- idea 生成方法注释
/* * * @description: * @author: xuetong.yang * @date: $date$ $time$ $params$ * @return: $return$ */ ...
- 免费SSL证书申请及部署实践
网络上关于如何签发免费SSL证书的博文一大片,但是真正操作起来的能让新手不迷惑的却很少,很多操作步骤受限于国内无法访问外网的阻碍,导致无法真正实施成功. 实际上,关于申请免费SSL证书主要涉及两大部分 ...
- day09 集合排序_Collection接口与Collections工具类
集合的排序 java.util.Collections类 Collections是集合的工具类,里面定义了很多静态方法用于操作集合. Collections.sort(List list)方法 可以对 ...
- # 8 快速入门 dubbo
8 快速入门 dubbo 所需资料 注册中心 Zookeeper 安装 zookeeper 官方推荐使用 zookeeper 注册中心: 注册中心负责服务地址的注册与查找,相当于目录服务: 服务提供者 ...
- C#异步延迟Task.Delay
一. 1.Task.Delay实质是创建一个任务,再任务中开启一个定时间,然后延时指定的时间2.Task.Delay不和await一起使用情况,当代码遇到Task.Delay一句时,创建了了一个新的任 ...
- 使用Python3.7结合Redisearch代替ElasticSearch实现的全文检索功能服务
原文转载自「刘悦的技术博客」https://v3u.cn/a_id_105 "检索"是很多产品中无法绕开的一个功能模块,当数据量小的时候可以使用模糊查询等操作凑合一下,但是当面临海 ...
- JDBC与ODBC的区别
JDBC简介JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,它是Java十三个规范之一.可以为多种关系数据库提供统一访 ...
- P4315 月下“毛景树”(树链剖分)
P4315 月下"毛景树"(树链剖分) 题面 简述: 边权转点权(在dfs1处转换) 把一条边权赋值在深度更深的上 需要实现对单边权的染色 , 路径边权的染色 , 路径边权的增加 ...
- 高效能团队的Java研发规范(进阶版)
目前大部分团队是使用的阿里巴巴Java开发规范,不过在日常开发中难免遇到覆盖不到的场景,本文在阿里巴巴Java开发规范基础上,补充一些常用的规范,用于提升代码质量及增强代码可读性. 编程规约 1.基础 ...
- 记录一个i变量引发的事故
概述 近期开发中遇到一个特别的问题,觉得很有必要与你下来.就是由于在开发中一个很小的疏忽,导致了很大的问题,是什么呢? 现象 我的程序突然引发了v8内部的错误,提示都是c++的,如下.程序一启动就直接 ...