go-mysql-elasticsearch安裝部署
阿新 • • 發佈:2021-10-23
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的原因,可以實現同步增刪改。對於網上說的日誌很少和不成熟等說法,這裡不評價。