Я новичок в debezium, я пытаюсь подключить свой коннектор kafka к моей уже существующей базе данных MySQL на моем сервере WAMP локально.
Я запустил zookeeper и kafka в соответствии с учебной документацией, а затем запустил коннектор kafka. В моем почтовом ящике я отправил следующий JSON на свой коннектор kafka, но продолжаю получать неверный ответ на запрос.
Запустить Zookepper
docker run -it --rm --name zookeeper -p 2181:2181 -p 2888:2888 -p 3888:3888 debezium/zookeeper:0.7
Запустить Кафку
docker run -it --rm --name kafka -p 9092:9092 --link zookeeper:zookeeper debezium/kafka:0.7
Запустить Kafka Connector
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 --link zookeeper:zookeeper --link kafka:kafka debezium/connect:0.7
Используя своего почтальона, я отправил следующее
{ "name": "shopcentra-connector", "config": { "connector.class": "io.debezium.connector.mysql.MySqlConnector", "tasks.max": "1", "database.hostname": "127.0.0.1", "database.port": "3306", "database.user": "root", "database.password": "root", "database.server.id": "5444", "database.server.name": "shopcentra", "database.whitelist": "shopcentra", "database.history.kafka.bootstrap.servers": "kafka:9092", "database.history.kafka.topic": "dbhistory.shopcentra", "include.schema.changes": "true" } }
My Bad Response
{
"error_code": 400,
"message": "Connector configuration is invalid and contains the following 1 error(s):\nUnable to connect: Communications link failure\n\nThe last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.\nYou can also find the above list of errors at the endpoint `/{connectorType}/config/validate`"
}
@ cricket_007, но у меня wamp работает на локальном хосте, значит ли это, что я не могу подключиться к моему локальному хосту wamp?
У вашего контейнера есть собственный сетевой стек. Localhost - это сам по себе, а не ваша вамп-среда. Для получения дополнительной информации stackoverflow.com/questions/40746453/… и stackoverflow.com/a/43541681/2308683
Альтернативой является перенос базы данных WAMP в контейнер Mysql (или запуск всех Apache, PHP и Mysql в качестве контейнеров).
@ cricket_007 хорошо, как мне перенести мою базу данных wamp в контейнер mysql? и Отразятся ли изменения, которые я вношу в этом контейнере, после его закрытия?
См. Раздел документации: Где хранить данные - hub.docker.com/_/mysql ... Вы можете найти существующие данные базы данных, а затем, теоретически, вы можете использовать подключение тома к этому каталогу. Или вы можете использовать mysqldump для экспорта / импорта






Если вы используете Docker, вы можете использовать предварительно настроенный образ MySQL debezium / example-mysql. В качестве альтернативы убедитесь, что вы настроили экземпляр с пользователем, которому предоставлены соответствующие разрешения:
GRANT SELECT, RELOAD, SHOW DATABASES, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'debezium' IDENTIFIED BY 'dbz';
а затем и для базы данных:
`GRANT ALL PRIVILEGES ON demo.* TO 'debezium'@'%';`
database.hostname": "127.0.0.1"... Это означает, что ваша база данных работает в контейнере подключения, а это не так. Вам необходимо использовать ваш внешний IP-адрес для хоста