实时监听 mysql 操作,Linux 版

时间:2023-03-08 23:21:16
实时监听 mysql 操作,Linux 版

效果

场景:某数据库新增了某条记录,服务器可以监听到变化的数据与操作,如

实时监听 mysql 操作,Linux 版

增加一条记录: id = 1009,name=''test,number = 11

实时监听 mysql 操作,Linux 版

服务器监听结果:

实时监听 mysql 操作,Linux 版

实现过程

测试过程:数据库可以是本地,或者远程均可。此demo 数据库为 windows 下mysql 数据库,服务器为 VM 虚拟器 Centos7。

一、mysql 开启 binlog (my.ini 文件),添加配置

log_bin =D:\mysql-binlog\mysql-bin

binlog_format=Row

server-id=201801

二、服务器启动  zookeeper 、kafka

实时监听 mysql 操作,Linux 版

//启动 zookeeper
bin/zookeeper-server-start.sh config/zookeeper.properties
//启动 kafka
bin/kafka-server-start.sh config/server.properties

实时监听 mysql 操作,Linux 版

实时监听 mysql 操作,Linux 版

另启一个窗口:创建kafka  topic =school

bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic school

三、下载 maxwell 解压

下载地址:https://github.com/zendesk/maxwell

实时监听 mysql 操作,Linux 版

启动 maxwell 连接mysql 数据库,标准输出

./bin/maxwell --user='root' --password='123456' --host='192.168.3.125' --producer=stdout

或者

启动 maxwell 监听mysql binlog ,输出到 kafka

./bin/maxwell --user='root' --password='123456' --host='192.168.3.125' --producer=kafka --kafka.bootstrap.servers='192.168.91.25:9092' --kafka_topic=school --log_level=debug

此处启动可能报错,数据库时区不对

实时监听 mysql 操作,Linux 版

使用命令修改数据库时区:

set global time_zone='+8:00'

四、启动 kafka 消费者,消费 topic 为 school

bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic school --from-beginning

实时监听 mysql 操作,Linux 版

参考:https://blog.****.net/wwwdc1012/article/details/88388552