You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Debezium独立非Docker环境下MySQL表数据同步问题求助

Debezium跨MySQL表同步问题:目标表未创建

问题场景

在非Docker环境下测试Debezium,实现将testiot.INPUT_TEMP的变更数据同步到tiotbak.INPUT_TEMP_BK,目前源表已被连接器读取,但目标表始终未自动创建。

源连接器配置(source.properties)

name=connect-mysql
connector.class=io.debezium.connector.mysql.MySqlConnector
tasks.max=1
database.hostname=localhost
database.port=3306
database.user=debezium
database.password=dbz
database.dbname=testiot
database.server.id=184054
topic.prefix=testiot
database.server.name=localhost
database.allowPublicKeyRetrieval=true
schema.history.internal.kafka.bootstrap.servers=localhost:9092
schema.history.internal.kafka.topic=testiot.INPUT_TEMP_BK
database.history.kafka.bootstrap.servers=localhost:9092
database.history.kafka.topic=testiot.INPUT_TEMP_BK

Sink连接器配置(sink.properties)

name=connect-mysql
connector.class=io.confluent.connect.jdbc.JdbcSinkConnector
tasks.max=1
connection.url=jdbc:mysql://localhost:3306/tiotbak?user=debezium&password=dbz&allowPublicKeyRetrieval=true&useSSL=false
topic.prefix=testiot
database.hostname=localhost
database.port=3306
database.user=debezium
database.password=Debez@01
database.dbname=tiotbak
database.server.id=184054
database.server.name=localhost
auto.create=true
insert.mode=upsert
pk.fields=DEVICE_ID
pk.mode=record_value
record_value=record_value

执行命令

sudo ./bin/connect-standalone.sh ./config/connect-debezium-mysql-worker.properties ./config/connect-debezium-mysql-source.properties ./config/connect-debezium-mysql-sink.properties

排查与解决建议

  • 清理Sink冗余配置:JdbcSinkConnector不需要database.hostname、database.port、database.server.id、database.server.name这些Debezium源连接器专属参数,直接删除,避免干扰Sink逻辑。
  • 统一数据库密码:当前connection.url中的密码为dbz,但单独配置的database.password为Debez@01,两者不一致会导致目标库连接权限验证失败,需统一为正确密码。
  • 修正Topic匹配规则:Debezium源连接器生成的Topic格式为{topic.prefix}.{database}.{table},即testiot.testiot.INPUT_TEMP,需在Sink配置中明确指定监听的Topic,比如添加topics=testiot.testiot.INPUT_TEMP,替代无效的topic.prefix配置。
  • 验证Kafka消息流转:使用kafka-console-consumer.sh消费testiot.testiot.INPUT_TEMP Topic,确认是否有变更消息生成;若没有,需先排查MySQL Binlog配置(确保开启Binlog、格式为ROW、server-id唯一)。
  • 确认目标库权限:确保debezium用户对tiotbak库拥有CREATE TABLE、INSERT、UPDATE等权限,可执行GRANT ALL ON tiotbak.* TO 'debezium'@'%'; FLUSH PRIVILEGES;刷新权限。
  • 删除无效参数:Sink配置中的record_value=record_value为无效参数,直接删除。

内容的提问来源于stack exchange,提问作者Krishna

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 23:40:21