1. 程式人生 > 其它 >go-mysql-elasticsearch安裝部署

go-mysql-elasticsearch安裝部署

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.總結

由於沒上過生產,所以只對我個人測試使用進行評價,安裝上和資料同步感覺很友好,因為結合binlog的原因,可以實現同步增刪改。對於網上說的日誌很少和不成熟等說法,這裡不評價。