ElasticSearch 安装 go-mysql-elasticsearch 同步mysql的数据
一、首先在Centos6.5上安装 go 语言环境
下载Golang语言包:https://studygolang.com/dl
[hoojjack@localhost src]$ ls
apache-maven-3.5.0 go go1.6.2.linux-amd64.tar.gz
二、解压.tar.gz安装包。
三、配置安装环境。
[hoojjack@localhost etc]$ vim profile
export GOPATH=/usr/local/src/go/work
export GOROOT=/usr/local/src/go
export PATH=$GOPATH/bin:$PATH
GOARCH(指定系统环境,i386表示x86,amd64表示x64):amd64
GOROOT:/usr/local/src/go(go的解压路径)
GOBIN:%GOROOT%/bin(exe执行文件路径)
GOOS:(go运行的系统)
GOPATH:/usr/local/src/go/work(用于存放Go语言Package的目录,这个目录不能在Go的安装目录中,放了好像也没什么事,至少我目前没事 ^_^)
我们需要添加的环境变量分别是go的安装路径GOROOT:/usr/local/src/go,PATH:$GOROOT/bin:$PATH,go的工作路径GOPATH:/usr/local/src/go/work
四、配置go环境后配置go-mysql-elasticsearch
首先确保环境中安装了git
安装依赖包:
sudo yum install gettext-devel openssl-devel perl-CPAN perl-devel zlib-devel
也可以直接用yum命令安装:
yum install git
然后:
获取安装包:go get github.com/siddontang/go-mysql-elasticsearch
安装:
cd $GOPATH/src/github.com/siddontang/go-mysql-elasticsearch
make
[hoojjack@localhost etc]$ cd /usr/local/src/go/src/github.com/siddontang/go-mysql-elasticsearch
[hoojjack@localhost go-mysql-elasticsearch]$ ls
bin cmd elastic etc Godeps LICENSE Makefile README.md river var
[hoojjack@localhost go-mysql-elasticsearch]$
五、修改配置文件
# MySQL address, user and password
# user must have replication privilege in MySQL.
my_addr = "127.0.0.1:3306" //需要同步的mysql基本设置
my_user = "root"
my_pass = "root" # Elasticsearch address
es_addr = "127.0.0.1:9200" //本地elasticsearch配置 # Path to store data, like master.info, and dump MySQL data
data_dir = "./var" //数据存储的url
//以下配置保存默认不变
# 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"
# mysqldump execution path
mysqldump = "mysqldump" # MySQL data source
[[source]]
schema = "hoojjack" //elasticsearch 与 mysql 同步时对应的数据库名称 # Only below tables will be synced into Elasticsearch.
# "test_river_[0-9]{4}" is a wildcard table format, you can use it if you have many sub tables, like table_0000 - table_1023
# I don't think it is necessary to sync all tables in a database.
tables = ["test_river", "test_river_[0-9]{4}"] //支持通配符,可以指定只复制hoojjack数据库中指定的表数据 # Below is for special rule mapping
[[rule]]
schema = "hoojjack" //数据库名称
table = "test_river" //表名称
index = "river" //对应的索引名称
# title is MySQL test_river field name, es_title is the customized name in Elasticsearch
[rule.field]
# This will map column title to elastic search my_title
title="es_title" //将可以将mysql的某个属性对应指向elasticsearch的某个field, 如test_river的titile属性对应es_title
# This will map column tags to elastic search my_tags and use array type
tags="my_tags,list"
# This will map column keywords to elastic search keywords and use array type
keywords=",list" # wildcard table rule, the wildcard table must be in source tables
[[rule]]
schema = "hoojjack"
table = "test_river_[0-9]{4}"
index = "river"
type = "river" # title is MySQL test_river field name, es_title is the customized name in Elasticsearch
[[rule.fields]]
mysql = "title"
elastic = "es_title"
六、执行go-mysql-elasticsearch同步,首先进入 go-mysql-elasticsearch 路径,然后执行 : ./bin/go-mysql-elasticsearch -config=./etc/river.toml
cd $GOPATH/src/github.com/siddontang/go-mysql-elasticsearch
./bin/go-mysql-elasticsearch -config=./etc/river.toml
效果如下:
mysql> select * from test_river;
+----+-----------+-----------------+--------+
| id | name | title | number |
+----+-----------+-----------------+--------+
| 1 | hoojjack | wo shi yi bing | 1 |
| 2 | xunchuan | ni shi er ren | 2 |

七、出现的问题:
1、mysqldump: command not found
mysql的mysqldump命令没有找到,解决办法:创建软连接,查看mysqldump是在哪个路径下:find / -name mysqldump 会获得路径,然后创建软连接:ln -s /usr/local/mysql/bin/mysqldump /usr/bin
这是由于系统默认会查找/usr/bin下的命令,如果这个命令不在这个目录下,当然会找不到命令
如果没有安装mysql,则可以利用yum安装mysql5.6
1)检查系统是否安装其他版本的MYSQL数据
#yum list installed | grep mysql
#yum -y remove mysql-libs.x86_64
2)安装及配置
# wget http://repo.mysql.com/mysql-community-release-el6-5.noarch.rpm
# rpm -ivh mysql-community-release-el6-.noarch.rpm
# yum repolist all | grep mysql
3)安装MYSQL数据库
yum install mysql-community-server -y
2、make build go-mysql-elasticsearch项目的时候出现问题(can’t load package: package .: no buildable Go source files in )
网上有很多的解决方法,但是我都没看懂,唯一看懂的大概就是要升级下go版本,因为之前go是1.6的,索性尝试升级到1.10,后面问题解决了(人品大爆棚),但是问题的核心没有解决。啊啊。。
【Reference】
[1] http://blog.csdn.net/laoyang360/article/details/51771483
ElasticSearch 安装 go-mysql-elasticsearch 同步mysql的数据的更多相关文章
- mysql 主从同步 mysql代理服务器
搭建mysql主从同步(实现数据自动备份)实例:把主机192.168.4.100的数据库配置为主机192.168.4.99的从数据库 主数据库服务器配置修改配置文件: [root@mysql ~]# ...
- MySQL 主从同步失败,数据表修复
问题描述: 接到报警称一台 MySQL 从库同步失败.登录服务器查看错误日志信息如下: Last_Error: Error 'Incorrect key file for table './bfcc/ ...
- 树莓派开发笔记(十七):树莓派4B+上Qt多用户连接操作Mysql数据库同步(单条数据悲观锁)
前言 安装了mysq数据库,最终时为了实现在一个树莓派上实现多用户多进程操作的同步问题,避免数据并发出现一些错误,本篇安装了远程服务并且讲述了使用Qt进行悲观锁for update操作,命令行进行 ...
- mysql主从同步mysql slave_io_running:no的解决方案
在主从同步的时候出现slave_io_running:no 问题,于是查看mysqld.log日志,发现时1042错误 解决方案: 编辑/etc/my.cnf,在:[mysqld]内添加一行:skip ...
- mysql主从同步+mycat读写分离+.NET程序连接mycat代理
背景 最近新项目需要用到mysql数据库,并且由于数据量大的原因,故打算采用1主1从(主数据库负责增.删.改操作:从数据库负责查操作)的数据库架构,在实现主从之后还要实现读写分离的代理,在网上搜寻了很 ...
- Mysql主从同步(1) - 概念和原理介绍 以及 主从/主主模式 部署记录
Mysql复制概念Mysql内建的复制功能是构建大型高性能应用程序的基础, 将Mysql数据分布到多个系统上,这种分布机制是通过将Mysql某一台主机数据复制到其它主机(slaves)上,并重新执行一 ...
- mysql 主从同步(转)
教程开始:一.安装MySQL 说明:在两台MySQL服务器192.168.21.169和192.168.21.168上分别进行如下操作,安装MySQL 5.5.22 二.配置MySQL主服务器(19 ...
- Elasticsearch安装和使用
Elasticsearch安装和使用 Elasticsearch 是开源搜索平台的新成员,实时数据分析的神器,发展迅猛,基于 Lucene.RESTful.分布式.面向云计算设计.实时搜索.全文搜索. ...
- Linux下MySQL主从同步配置
Centos6.5 MySQL主从同步 MySQL版本5.6.25 主服务器:centos6.5 IP:192.168.1.101 从服务器:centos6.5 IP:192.168.1.102 一. ...
- 001-windows下Elasticsearch安装、Elasticsearch-header安装
一.window安装Elasticsearch安装 elasticsearch的客户端版本必须与服务端版本主版本保持一致. 1.java安装[略] 2.elasticsearch下载 地址:https ...
随机推荐
- R语言概述
R是一个有着统计分析功能及强大作图功能的软件系统,是由Ross Ihaka和Robert Gentleman共同创立.它是属于GNU系统的一个自由.免费.源码开放的软件,同一时候也是一个用于统计计算和 ...
- 实战c++中的string系列--不要使用memset初始化string(一定别这么干)
參考链接: http://www.cppblog.com/qinqing1984/archive/2009/08/07/92479.html 百度百科第一次这么给力: void *memset(voi ...
- HDU 5083 Instruction(字符串处理)
Problem Description Nowadays, Jim Green has produced a kind of computer called JG. In his computer, ...
- GoF--适配器设计模式
1.概念: 适配器模式(Adapter Pattern)把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作. 2.形式 a.类的适配器模式 ...
- android 网络检测
这个过程我觉得有必要记录一下事情的起因是这样的, 写的程序在虚拟机下面无法连接到服务器,首先想到的是,虚拟机能不能访问外网,打开某搜索网站,正常,想用ping命令来ping服务器,于是就有了下面的过程 ...
- springboot学习过程笔记
1.spring-boot-devtools热部署在IDEA中配置后不起作用(Eclipse设置了自动编译,所以不用额外设置) 1).pom.xml添加spring-boot-devtools依赖后 ...
- GC--垃圾收集器
把周末的文章放在现在才来写,是自己太忙了?还是堕落了? 好吧直接进入主题吧,简单干脆的理解会让自己记忆深刻: 首先说明:GC垃圾收集器关注两件事情: 第一件:查找所有存活对象. 第二件:抛弃死对象(不 ...
- U3D优化
容易忽略的美术资源的优化: 优化的美术制作真是一种感觉和经验的积累,能看出制作水平的不是做的效果多么犀利,而是得看制作的效果与对机器的要求等的性价比. 关于合并: 100个三角形的MESH,在渲染时 ...
- es 批量导入文件
首先是json格式的文件: curl -XPOST 'localhost:9200/bank/account/_bulk?pretty' --data-binary @accounts.json 1 ...
- STL概论
一.STL简介 1.STL(Standard Template Library,标准模板库)是C++标准库最主要和最重要的组成部分.其重要作用在于: (1)它可以用来创建动态增长和减小的数据结构: ( ...