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 配置文件(打红对勾的三处)
    这是开启了Binglog的
    这是没开启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以便于接受数据
bin/kafka-topics.sh --create --zookeeper bigdata:2181 --replication-factor 1 --partitions 3 --topic maxwell
  1. 启动生产者
bin/kafka-console-producer.sh --broker-list bigdata:9092 --topic maxwell
  1. 启动消费者
bin/kafka-console -consumer.sh--zookeeper bigdata:2181 --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集群的节点主机名和端口号

猜你喜欢

转载自blog.csdn.net/zhaoyu410186459/article/details/86143256