快速构建 Debezium MySQL Example 数据库

《大数据平台架构与原型实现:数据中台建设实战》博主历时三年精心创作的《大数据平台架构与原型实现:数据中台建设实战》一书现已由知名IT图书品牌电子工业出版社博文视点出版发行,点击《重磅推荐:建大数据平台太难了!给我发个工程原型吧!》了解图书详情,京东购书链接:https://item.jd.com/12677623.html,扫描左侧二维码进入京东手机购书页面。

Debezium 官方提供的 MySQL Example 数据库是一个很好的工具,它内置了一个名为 inventory 的数据库,且已经配置好了 binlog,在测试 CDC 方案时非常有用,同时,它又可以基于 Docker 快速部署,所以使用起来就更方便了。本文专门介绍一下这个数据库的使用的方法。

本文操作预设本地已安装并配置好了 docker,如需先行安装 docker,请参考 《Apache Kafka 基于 S3 的数据导出、导入、备份、还原、迁移方案》一文第4节提供的 Shell 脚本。

1. 启动 MySQL Server 端


# stop container if running
docker container stop $(docker ps -aqf "name=mysql")
# remove container
docker container rm $(docker ps -aqf "name=mysql")
# start container
docker run -d --rm \--name mysql \-p 3307:3306 \-e MYSQL_ROOT_PASSWORD=Admin1234! \-e MYSQL_USER=mysqluser \-e MYSQL_PASSWORD=Admin1234! \debezium/example-mysql:1.0

备注:为避免和本地安装的 MySQL Server 冲突,此处特意将端口改为了3307

2. 启动 MySQL Client 端


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

备注:--link可以通过 “容器名” 互相通信,容器间共享环境变量,该参数用来解决:两个容器通过ip地址连接时容器 IP 地址会变动的问题,mysql 命令行中使用的环境MYSQL_PORT_3306_TCP_ADDRMYSQL_PORT_3306_TCP_PORT均为 link 了 name 为 mysql 的这个容器(就是上面启动的 Server 端容器)后,从该容器传递过来的环境变量,也就是 Server端容器的 IP 地址和 Port。

附录:Docker 知识点


启动 MySQL Server 端和 Client 端的 docker 命令是 -d-it 两个参数特别好的示例!因为两者的启动模式恰好就是这两种参数各自典型的应用场景!简单地说:

  • -d 用来运行那些**”服务“型的程序**,启动之后在后台运行,当前命令行应就地退出,MySQL Server 端进程就是此类典型的案例
  • -it 用来运行那些**”交互“式的命令行**,启动之后不但要分配命令行终端,且不会主动退出,除非用户在终端主动退出,MySQL Client 端进程就是此类典型的案例

以下是 Docker 官方文档 对 -d-i-t 三个参数的解释:

参数说明解释
–detach , -dRun container in background and print container ID后台运行模式,d 意为 detach
–interactive , -iKeep STDIN open even if not attached交互模式,i 意为 interactive
–tty , -tAllocate a pseudo-TTY分配终端,t 意为 tty

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/697186.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

突破编程_C++_面试(指针(1))

面试题 1 :什么是空指针? 在 C 中,空指针是一个特殊的指针值,它不指向任何有效的内存地址。空指针通常用于表示指针不指向任何对象或函数。在C11及以后的版本中, nullptr 是表示空指针的推荐方式。 nullptr 是一个指针…

AI绘画与修图:重塑数字艺术的新纪元

文章目录 一、AI绘画与修图的原理二、AI绘画的应用三、AI修图的优势四、面临的挑战五、未来发展趋势《AI绘画与修图实战:PhotoshopFirefly从入门到精通 轻松玩转AI绘画与修图实战》亮点内容简介作者简介 随着人工智能技术的飞速发展,AI绘画与修图已经成为…

如何理解和区分训练集、测试集和验证集

如何理解和区分训练集、测试集和验证集 🌈 个人主页:高斯小哥 🔥 高质量专栏:Matplotlib之旅:零基础精通数据可视化、Python基础【高质量合集】 💡 创作高质量博文,分享更多关于深度学习、PyTor…

靡语IT:Vue精讲(一)

Vue简介 发端于2013年的个人项目,已然成为全世界三大前端框架之一,在中国大陆更是前端首选。 它的设计思想、编码技巧也被众多的框架借鉴、模仿。 纪略 2013年,在Google工作的尤雨溪,受到Angular的启发,从中提取自…

soc(十七) SOC市场分类

桌面服务器集中式服务器架构和基于ARM微服务器架构的存储差别在哪? http://www.dostor.com/p/54167.html 手机飞行器汽车家庭监控安防路由器

【前端素材】推荐优质后台管理系统Protable平台模板(附源码)

一、需求分析 后台管理系统是一种用于管理和监控网站、应用程序或系统的在线工具。它通常是通过网页界面进行访问和操作,用于管理网站内容、用户权限、数据分析等。当我们从多个层次来详细分析后台管理系统时,可以将其功能和定义进一步细分,…

华为配置CAPWAP双栈覆盖业务示例

配置CAPWAP双栈覆盖业务示例 组网图形 图1 配置CAPWAP双栈覆盖业务示例组网图 业务需求组网需求数据规划配置思路配置注意事项操作步骤配置文件 业务需求 企业用户接入WLAN网络,以满足移动办公的最基本需求。且在覆盖区域内移动发生漫游时,不影响用户的业…

解决 PLC QModbusTcpClient 通信自动断开

项目场景: 提示:这里简述项目相关背景: 例如:项目场景:QModbusTcpClient 通信 问题描述 提示:这里描述项目中遇到的问题: QModbusTcpClient 连接后,稍微停一段时间,就…

LeetCode10. Regular Expression Matching——完全背包

文章目录 一、题目二、题解 一、题目 Given an input string s and a pattern p, implement regular expression matching with support for ‘.’ and ‘*’ where: ‘.’ Matches any single character.​​​​ ‘*’ Matches zero or more of the preceding element. The…

【selenium】三大切换 iframe 弹窗alert 句柄window 和 鼠标操作

目录 一、iframe 1、切换方式: 1、第一种情况: 2、第二种情况: 方式1: 先找到iframe,定位iframe元素(可以通过元素定位的各种方式:xpath,css等等),用对象接收&…

MyBatis Plus中的动态表名实践

随着数据库应用的不断发展,面对复杂多变的业务需求,动态表名的处理变得愈发重要。在 MyBatis Plus(以下简称 MP)这一优秀的基于 MyBatis 的增强工具的支持下,我们可以更便捷地应对动态表名的挑战。本文将深入研究如何在…

美创新一代数据安全管理平台宣传片「龍」重登场

美创新一代数据安全管理平台(DSM Cloud)产品宣传片 国产化、混合多云环境催生愈加复杂的数据安全防护、管理及可持续运营挑战。 美创新一代数据安全管理平台(DSM Cloud),围绕韧性数据安全体系,聚焦全域数据…

[HTML]Web前端开发技术27(HTML5、CSS3、JavaScript )JavaScript基础——喵喵画网页

希望你开心,希望你健康,希望你幸福,希望你点赞! 最后的最后,关注喵,关注喵,关注喵,佬佬会看到更多有趣的博客哦!!! 喵喵喵,你对我真的…

activeMq将mqtt发布订阅转成消息队列

1、activemq.xml置文件新增如下内容 2、mqttx测试发送: 主题(配置的模糊匹配,为了并发):VirtualTopic/device/sendData/12312 3、mqtt接收的结果 4、程序处理 package comimport cn.hutool.core.date.DateUtil; imp…

ReactNative进阶(二十三)error: no type or protocol named ‘RCTBridgeModule’问题修复

文章目录 一、前言三、拓展阅读 一、前言 Jenkins组包RN技术栈实现的iOS应用时&#xff0c;遇到以下错误提示信息&#xff1a; error: no type or protocol named ‘RCTBridgeModule’ interface RCTEventDispatcher : NSObject <RCTBridgeModule>error: cannot find i…

【AIGC】基于深度学习的图像生成与增强技术

摘要&#xff1a; 本论文探讨基于深度学习的图像生成与增强技术在图像处理和计算机视觉领域的应用。我们综合分析了主流的深度学习模型&#xff0c;特别是生成对抗网络&#xff08;GAN&#xff09;和变分自编码器&#xff08;VAE&#xff09;等&#xff0c;并就它们在实际应用中…

嵌入式linux开发 (三十四) 内存管理2.0(6) 各种段(.code .rodata .data .bss .stack .heap)的含义

我们知道, 逻辑程序在连接的时候在elf 文件中会有 .code .rodata .data 然后在内存中才会有 .code .rodata .data那么为什么链接器在链接生成的elf文件中会有这些段呢?这涉及到链接器的历史问题

小程序性能优化

背景 在开发小程序的过程中我们发现&#xff0c;小程序的经常会遇到性能问题&#xff0c;尤其是在微信开发者工具的时候更是格外的卡&#xff0c;经过排查发现&#xff0c;卡顿的页面有这么多的js代码需要加载&#xff0c;而且都是在进入这个页面的时候加载&#xff0c;这就会…

Java架构师之路九、设计模式:常见的设计模式,如单例模式、工厂模式、策略模式、桥接模式等

目录 常见的设计模式&#xff1a; 单例模式&#xff1a; 工厂模式&#xff1a; 策略模式&#xff1a; 桥接模式&#xff1a; 责任链模式&#xff1a; Java架构师之路八、安全技术&#xff1a;Web安全、网络安全、系统安全、数据安全等-CSDN博客Java架构师之路十、框架和工…

Android 仿信号格子强度动画效果实现

效果图 在 Android 中&#xff0c;如果你想要绘制一个圆角矩形并使其居中显示&#xff0c;你可以使用 Canvas 类 drawRoundRect 方法。要使圆角矩形居中&#xff0c;你需要计算矩形的位置&#xff0c;这通常涉及到确定矩形左上角的位置&#xff08;x, y&#xff09;&#xff0…