Maxwell实时监听Binlog单机demo

需要环境

  • Linux环境
  • MySQL (版本:5.7.19)
  • kafka (版本:kafka_2.11-1.0.0)
  • zookeeper (版本:zookeeper-3.4.10)
  • Maxwell (版本:maxwell-1.17.1)

配置Linux环境下MySQL

开启Binlog

  • 我的MySQL版本是5.7.19
  • 开启Binlog,修改 /etc/my.cnf 配置文件(打红对勾的三处)
    配置Binlog之后,见下图↓↓↓
    Alt 这是开启了Binglog的
    配置Binlog之前,见下图↓↓↓
    这是没开启Binlog时候的

配置Maxwell数据库权限

CREATE USER 'maxwell_sync'@'%' IDENTIFIED BY 'maxwell_sync';
-- Maxwell需要在待同步的库上建立schema_database库,将状态存储在`schema_database`选项指定的数据库中(默认为`maxwell`)
GRANT ALL on maxwell.* to 'maxwell_sync'@'%';
-- 把maxwell数据库的所有表授权给maxwell_sync用户
GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'maxwell_sync'@'%';
FLUSH PRIVILEGES;
--------------------- 

创建数据库

create database test_maxwell;
use test_maxwell;
create table if not exists `user_info`(
   `userid` int,
   `name` varchar(100),
   `age` int
)engine=innodb default charset=utf8;
--------------------- 

配置Kafka并启动Maxwell

说明(以下我的kafka是安装在主机名叫bigdata11,注意kafka里的配置文件端口号要和命令行里给的端口号一致)

  1. 启动zookeeper
[root@bigdata11 ~]# zkServer.sh start
  1. 启动kafka
[root@bigdata11 kafka_2.11-1.0.0]# bin/kafka-server-start.sh config/server.properties
  1. 创建一个主题叫maxwell以便于接受数据
    注意:bigdata11是安装kafka的那台主机名。kafka生产者配置的端口号要与maxwell配置的kafka.bootstrap.servers端口号一致
bin/kafka-topics.sh --create --zookeeper bigdata11:2181 --replication-factor 1 --partitions 3 --topic maxwell
  1. 启动生产者
bin/kafka-console-producer.sh --broker-list bigdata11:9092 --topic maxwell
  1. 启动消费者
bin/kafka-console-consumer.sh --bootstrap-server bigdata11:9092 --topic maxwell
  1. 开启maxwell命令行
    注意,如果没有设置,maxwell默认是把监听的mysql的binlog日志发送到kafka的主题叫maxwell的topic上的
[root@bigdata11 maxwell-1.17.1]# bin/maxwell \
> --host='localhost' \
> --user='maxwell_sync' \
> --password='maxwell_sync' \
> --kafka_topic=maxwell \
> --port=3306 \
> --producer=kafka \
> --kafka.bootstrap.servers=bigdata11:9092

host参数是安装mysql的那台主机,最后的kafka.bootstrap.servers是安装kafka集群的节点主机名和端口号

开始测试

  • 第一步:依次把zookeeper启动,kafka启动,创建好主题topic,然后启动生产者,启动消费者,最后在启动Maxwell
  • 第二步:进入mysql,然后use test_maxwell数据库;进入后,开始执行操作,如果前面都配置好的话,你执行一个sql语句,kafka消费者那边是会自动监听到对应数据的。
mysql> update user_info set name='name312',age=23 where userid=1;

见下图↓↓↓
在这里插入图片描述

Maxwell具体说明

http://maxwells-daemon.io/quickstart/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值