进入主题了,我们的目标是同步mysql的数据到elasticsearch中,如果是单单使用logstash的话,存在延迟一分钟的,又如果是使用canal的话,不能实现全量,所以只能结合两个一起用了,准备工具有 logstash-6.8.13,elasticsearch-6.8.13,kibana-6.8.13,mysql,canal-1.1.5,这些中间件都是提前准备好咯,安装过程就不再写,因为都很简单了,百度上也很多,
第一步:配置mysql ,起开binlog的日志 和创建同步用户账号密码
1.1配置my.ini 在添加一下配置
[mysqld]
##开启binlog
log-bin=mysql-bin
binlog-format=ROW ## 选择row模式
server_id=101 ##配置mysql replaction 需要定义,不要和canal的slaveId重复 设置server_id,同一局域
## 上面添加配置基本满足了
##设置二进制(事务)的日志使用内存大小
binlog_cache_size=1M
## 表示二进制的日志过期就清理,时间为7天,默认是值是0 表示不清理
expire_logs_days=7
1.2创建slave 的账户和密码
CREATE user canal IDENTIFIED by 'canal';
grant SELECT ,replication slave ,replication client on *.* to 'canal'@'%';
FLUSH PRIVILEGES;
1.3 查询是否配置成功,如果一下跟我一样说明是配置成功了 已经开启了
##查询binlog是否开启
show variables like '%log_bin%'
##查看下MySQL的binlog模式;
show variables like 'binlog_format%';