Elasticsearch学习笔记(二) mysql数据同步

安装好了elasticsearch,但是没有数据是不行的,下面将介绍如何同步mysql数据到elasticsearch:

同步mysql数据到elasticsearch,我们使用同步插件go-mysql-elasticsearch:


go-mysql-elasticsearch插件环境:


1 .安装mysql:请查看另一篇博客(http://blog.csdn.net/qq_34246546/article/details/78520137)

(注意若在安装过程中缺少my-default.cnf文件,请到网上下载一份,改动其中的路径。)



2.安装go语言环境:

步骤1:安装go


   从官网下载二进制包如*go1.6.linux-amd64.tar.gz*

   解压到/usr/local目录下

 在配置文件 /etc/profile 中添加:

  export GOPATH=/usr/local/go
  export GOROOT=/usr/local/go/bin
  export PATH=$GOPATH/bin:$PATH 

步骤2:获取go-mysql-elastisearch插件(可能遇到下载不完整的情况)

go get github.com/siddontang/go-mysql-elasticsearch


步骤3:安装go-mysql-elastisearch插件


cd $GOPATH/src/github.com/siddontang/go-mysql-elasticsearch 


make

步骤4: 修改配置文件:/usr/local/go/src/github.com/siddontang/go-mysql-elasticsearch/etc 

river.toml 中的mysql数据库信息

步骤4:执行同步操作:

cd $GOPATH/src/github.com/siddontang/go-mysql-elasticsearch 


./bin/go-mysql-elasticsearch -config=./etc/river.toml




ok 现在我们就可以看到elasticsearch中同步到的数据。


对数据库的增删改都会影响到elasticsearch的数据



同步过程遇到的无法同步的情况(可能的解决方法如下):

1.Elasticsearch 环境下没有安装mysqldump 环境(安装mysql即可)

2.要同步的mysql数据库的日志类型未设置为ROW Format(修改etc下的mysql配置文件my.cnf)

log-bin=mysql-bin
binlog_format="ROW"
 
  
或者mysql命令行下:
 
  
  1. mysql> SET SESSION binlog_format = 'ROW';  
  2. mysql> SET GLOBAL binlog_format = 'ROW';  
 
  

3.出现 

[2017/11/13 19:49:59] canal.go:146 [Error] canal start sync binlog err: ERROR 1236 (HY000): Could not find first log file name in binary log index file
错误
在目录 /usr/local/go/src/github.com/siddontang/go-mysql-elasticsearch/etc  目录下找到 river.toml 文件,搜索关键字data_dir = =    找到指定的目录,将下面的
文件删除即可




你可能感兴趣的:(Elasticsearch)