首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >配置Debezium连接到给定的mySQL实例

问配置Debezium连接到给定的mySQL实例
EN

Stack Overflow用户
提问于 2020-05-27 02:25:18
回答 1查看 410关注 0票数 1

比方说,我将获得多个MySQL实例,并且必须流式传输实时数据。为此,我使用下面列出的命令在Docker Container上启动了一些服务,这些命令将我连接到示例库存数据库,并且当我在MySQL命令行客户端中执行任何DML命令时,都能够监控这些数据的变化。

但是,连接到实际的MySQL数据库并在观察器窗口中传输相同的内容所需的更改或等效命令是什么呢?

代码语言:javascript
复制
docker run -it --rm --name zookeeper -p 2181:2181 -p 2888:2888 -p 3888:3888 debezium/zookeeper:1.1

docker run -it --rm --name kafka -p 9092:9092 --link zookeeper:zookeeper debezium/kafka:1.1

docker run -it --rm --name mysql -p 3308:3308 -e MYSQL_ROOT_PASSWORD=debezium -e MYSQL_USER=mysqluser -e MYSQL_PASSWORD=mysqlpw debezium/example-mysql:1.1

docker run -it --rm --name mysqlterm --link mysql --rm mysql:5.7 sh -c "exec mysql -h"$MYSQL_PORT_3306_TCP_ADDR" -P"$MYSQL_PORT_3306_TCP_PORT" -uroot -p"debezium""

docker run -it --rm --name connect -p 8083:8083 -e GROUP_ID=1 -e CONFIG_STORAGE_TOPIC=my_connect_configs -e OFFSET_STORAGE_TOPIC=my_connect_offsets -e STATUS_STORAGE_TOPIC=my_connect_statuses --link zookeeper:zookeeper --link kafka:kafka --link mysql:mysql debezium/connect:1.1

curl -i -X POST -H "Accept:application/json" -H "Content-Type:application/json" localhost:8083/connectors/ -d "{ \"name\": \"inventory-connector\", \"config\": { \"connector.class\": \"io.debezium.connector.mysql.MySqlConnector\", \"tasks.max\": \"1\", \"database.hostname\": \"mysql\", \"database.port\": \"3306\", \"database.user\": \"debezium\", \"database.password\": \"dbz\", \"database.server.id\": \"184054\", \"database.server.name\": \"dbserver1\", \"database.whitelist\": \"inventory\", \"database.history.kafka.bootstrap.servers\": \"kafka:9092\", \"database.history.kafka.topic\": \"dbhistory.inventory\" } }"

docker run -it --rm --name watcher --link zookeeper:zookeeper --link kafka:kafka debezium/kafka:1.1 watch-topic -a -k dbserver1.inventory.customers

让我们假设MySQL连接详情如下:

代码语言:javascript
复制
Host address of MySQL : XXX.XXX.X.XXX
Databse/Schema : YYYYY
Username : ZZZZZ
Password : PPPPP
port : 3306

任何线索/解释都将非常感谢!

EN

回答 1

Stack Overflow用户

发布于 2020-05-27 03:46:51

当您使用此命令配置连接器时

代码语言:javascript
复制
curl -i -X POST -H "Accept:application/json" -H "Content-Type:application/json" localhost:8083/connectors/ -d "{ \"name\": \"inventory-connector\", \"config\": { \"connector.class\": \"io.debezium.connector.mysql.MySqlConnector\", \"tasks.max\": \"1\", \"database.hostname\": \"mysql\", \"database.port\": \"3306\", \"database.user\": \"debezium\", \"database.password\": \"dbz\", \"database.server.id\": \"184054\", \"database.server.name\": \"dbserver1\", \"database.whitelist\": \"inventory\", \"database.history.kafka.bootstrap.servers\": \"kafka:9092\", \"database.history.kafka.topic\": \"dbhistory.inventory\" } }"

您可以修改它以包含实际源数据库的详细信息,例如

代码语言:javascript
复制
curl -i -X PUT -H  "Content-Type:application/json" \
    http://localhost:8083/connectors/source-mysql-01/config \
    -d '{
    "connector.class": "io.debezium.connector.mysql.MySqlConnector",
    "tasks.max": "1",
    "database.hostname": "XXX.XXX.X.XXX",
    "database.port": "3306",
    "database.user": "ZZZZZ",
    "database.password": "PPPPP",
    "database.server.id": "184054",
    "database.server.name": "dbserver1",
    "database.whitelist": "YYYYY",
    "database.history.kafka.bootstrap.servers": "kafka:9092",
    "database.history.kafka.topic": "dbhistory.YYYYY"
}'

请注意,我还更改为PUT而不是POST,因为这意味着您可以重新运行该命令来修改同名的现有连接器(如果它不存在,则创建它)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62028873

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档