ES同步Mysql数据库(包括出现问题怎么处理哦)

1、下载logstash(找到和Elasticssearch对应的版本)
下载链接:
https://www.elastic.co/fr/downloads/logstash
进入bin目录下新建一个文件夹(命名随意),jdbc.sql和logstash.conf
在这里插入图片描述
下载一个数据库连接包放在bin文件夹下
在这里插入图片描述
(数据库连接包最好下载和mysql版本对应的)
下载地址:https://mvnrepository.com/artifact/mysql/mysql-connector-java
jdbc.sql写要查询的代码:

select id,username,sex,birthday,address from user;

logstash.conf写入配置信息:
input { stdin { } jdbc { # mysql 数据库链接,mybatis为数据库名 jdbc_connection_string => "jdbc:mysql://127.0.0.1:3306/TESTDB?useUnicode=true&characterEncoding=utf8" # 用户名和密码 jdbc_user => "root" jdbc_password => "root" # 驱动 修改为mysql连接包位置 jdbc_driver_library => "D:\gj\logstash-7.9.0\logstash-7.9.0\bin\bin/mysql-connector-java-5.1.7-bin.jar" # 驱动类名 jdbc_driver_class => "com.mysql.jdbc.Driver" jdbc_paging_enabled => "true" jdbc_page_size => "50000" # 执行的sql 文件路径+名称 statement_filepath => "jdbc.sql" # 设置监听间隔 各字段含义(由左至右)分、时、天、月、年,全部为*默认含义为每分钟都更新 schedule => "* * * * *" } } output { elasticsearch { # ES的IP地址及端口 hosts => ["localhost:9200"] # 索引名称 可自定义 index => "test" # 需要关联的数据库中有有一个id字段,对应类型中的id document_id => "%{id}" document_type => "test" } stdout { # JSON格式输出 codec => json_lines } }

连接数据库时,出现Unknown character set index for field ‘255’ received from server.
这由于数据库连接包和数据库版本不一致,MySQL版本高,mysql的jar版本低造成mysql与jar的编码错乱引起的

处理:
1、升级数据库连接包
2、修改logstash.conf,添加字符集说明
在这里插入图片描述
Mysql数据库建表:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
启动程序:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
显示以上信息,表示成功。
浏览器中再次输入:http://localhost:9100
在这里插入图片描述
查看数据:
在这里插入图片描述


版权声明:本文为qq_43383428原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。