kafka 同步mysql_在kafka connect 同步 mysql 主从数据库

下载以下文件,解压,放置到kafka的libs目录

从这里选择适合的mysql connector

mysql-connector-java-8.0.16.jar

将里面的jar文件提取出来,也放到kafka的libs目录

在config目录下创建 connect-mysql-source.properties

创建 A数据库源表person

CREATE TABLE `person` (

`pid` int(11) NOT NULL AUTO_INCREMENT,

`firstname` varchar(255) CHARACTER SET utf8 DEFAULT NULL,

`age` int(11) DEFAULT NULL,

PRIMARY KEY (`pid`)

) ENGINE=InnoDB DEFAULT CHARSET=latin1;

创建 B数据库目标表kafkaperson

CREATE TABLE `kafkaperson` (

`pid` int(11) NOT NULL AUTO_INCREMENT,

`firstname` varchar(255) CHARACTER SET utf8 DEFAULT NULL,

`age` int(11) DEFAULT NULL,

PRIMARY KEY (`pid`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;

connect-mysql-source.properties 内容为

name=mysql-a-source-person

connector.class=io.confluent.connect.jdbc.JdbcSourceConnector

tasks.max=1

connection.url=jdbc:mysql://127.0.0.1:3306/a_db?user=root&password=root

# incrementing 自增

mode=incrementing

# 自增字段 pid

incrementing.column.name=pid

# 白名单表 person

table.whitelist=person

# topic前缀 mysql-kafka-

topic.prefix=mysql-kafka-

connect-mysql-sink.properties 内容

name=mysql-a-sink-person

connector.class=io.confluent.connect.jdbc.JdbcSinkConnector

tasks.max=1

#kafka的topic名称

topics=mysql-kafka-person

# 配置JDBC链接

connection.url=jdbc:mysql://127.0.0.1:3306/b_db?user=root&password=root

# 不自动创建表,如果为true,会自动创建表,表名为topic名称

auto.create=false

# upsert model更新和插入

insert.mode=upsert

# 下面两个参数配置了以pid为主键更新

pk.mode = record_value

pk.fields = pid

#表名为kafkatable

table.name.format=kafkaperson

启动kafka

如果报 The server time zone value ” is  unrecognized or represents more than one time 。。。

以命令行进入mysql

mysql> show variables like '%time_zone%';

+------------------+--------+

| Variable_name | Value |

+------------------+--------+

| system_time_zone | |

| time_zone | SYSTEM |

+------------------+--------+

2 rows in set

如果输出结果是system

设置time_zone即可

mysql> set global time_zone='+8:00';

Query OK, 0 rows affected;

530981168885baac9321ecbe1710d679.png

9421376d2d89deaa397f7a3a4b885f0d.png

稍微有点延迟、并且只有添加才会同步,更新、删除都不行。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值