
项目版本与运行环境JDK 版本21操作系统Windows 11虚拟机系统 AnolisOS_Mini_8.10MySQL 版本8.4.5ElasticSearch 版本8.18.8Cloud Canal 版本6.2.0.1配置环境安装 Cloud CanalCloud Canal 官网安装教程点击进入后按要求先在虚拟机上安装 Docker 或 Docker Compose安装完毕后在虚拟机上运行以下命令curl-fsSLhttps://tgzdownload.clougence.com/support/install_on_docker.sh|bash-s--6.2.0.1 ./cc_home当出现以下内容时代表 Cloud Canal 已经安装成功███████╗██╗ ██╗ ██████╗ ██████╗███████╗███████╗███████╗ ██╔════╝██║ ██║██╔════╝██╔════╝██╔════╝██╔════╝██╔════╝ ███████╗██║ ██║██║ ██║ █████╗ ███████╗███████╗ ╚════██║██║ ██║██║ ██║ ██╔══╝ ╚════██║╚════██║ ███████║╚██████╔╝╚██████╗╚██████╗███████╗███████║███████║ ╚══════╝ ╚═════╝ ╚═════╝ ╚═════╝╚══════╝╚══════╝╚══════╝ CloudCanalforDocker is ready!visit console http://{ip}:8111inan web explorer and have fun:)随后使用当前虚拟机的 IP 地址加上端口号进行访问http://{虚拟机 IP 地址}:8111示例http://192.168.200.131:8111进入后输入账号和密码默认账号testcloudgence.com默认密码clougence2021若有需要进行密码修改可参考此链接内容Cloud Canal - 修改密码登陆完成后点击同步设置可看到当前已有集群下的机器若后续有需要新增机器的可点击机器列表点击新增机器详细步骤可见Cloud Canal - 添加机器修改 MySQL 和 ElasticSearch 配置文件因为博主的 MySQL 和 ElasticSearch 都在本地电脑上运行所以在添加数据源前需要对 MySQL 和 ElasticSearch 的配置文件做部分修改。MySQL 配置文件修改首先找到本地 MySQL 的安装根目录找到my.ini文件对其中的内容做部分修改如果没有这些配置信息那就追加# 将 binlog 记录格式设置为行模式。记录每一行数据的实际变更而非 SQL 语句本身。binlog_formatROW# 在 ROW 格式下记录变更前和变更后的所有列的完整数据。确保消费端能获取完整的行快照避免部分更新导致的数据不一致。binlog_row_imageFULL# 允许 MySQL 监听所有网络接口接受来自任意 IP 的连接。bind-address0.0.0.0博主这里使用bind-address 0.0.0.0主要用于测试开发且机器都在本地电脑运行若是部署在生产环境上请勿模仿修改完 my.ini 文件后需要重新启动 MySQL 应用新配置的设置在服务中找到 MySQL 选择重启动。重新启动完后需创建一个账户用于 Cloud Canal 认证连接。CloudCanal 所需的 MySQL 账号权限-- 1. 创建用户注意密码需自行设置CREATEUSERcloudcanal%IDENTIFIEDBYstrong_password_here;-- 2. 授予仅 SELECT、REPLICATION SLAVE 和 REPLICATION CLIENT 权限GRANTSELECT,REPLICATIONSLAVE,REPLICATIONCLIENTON*.*TOcloudcanal%;-- 3. 刷新权限FLUSHPRIVILEGES;用户创建完毕后即可在 Cloud Canal 中配置 MySQL 数据源了ElasticSearch 配置修改找到 ElasticSearch 的安装根目录下的 config 文件夹打开elasticsearch.yml将信息修改为红框中示例没有信息就追加信息设为 0.0.0.0 的意义与 MySQL 一致为了虚拟机中的 Cloud Canal 可以连接到。设置完毕后重启 ElasticSearch配置数据源点击数据源管理点击新增数据源。配置 MySQL选择自建若有云服务的数据库可按需选择其他选择 MySQL环境保持默认。网络地址选择内网IP 地址填写电脑本机 IP若不知道自己电脑的本机 IP 可使用以下命令在 powershell 中查看ipconfig这是博主自己电脑的 IP 地址端口保持默认有变动的按自己 MySQL 中的端口来设置认证方式选择账号密码填写之前所设置的专用账号密码随后点击测试连接确保连接成功。其余设置保持默认点击下面的新增数据源按钮。返回数据源管理页面出现刚刚配置的数据源即代表配置成功。配置 ElasticSearch现在重复点击新增数据源选择 ElasticSearch一样根据自己的 IP 进行配置由于博主使用的是 ElasticSearch 8.18.8 版本此版本的 ElasticSearch 以默认开启安全鉴权模式且已经自动生成了 CA 证书所以此处选择使用 CA 证书模式登录输入 ElasticSearch 的账号密码并上传已生成的 CA 证书并开启 HTTPS设置完毕后点击添加数据源。添加完毕后依然测试连接查看是否连接成功连接成功后便可配置同步任务。配置同步任务1.源目标设置点击同步任务新增任务。源类型选择 MySQL目标类型选择 ElasticSearch代表意思从 MySQL 将数据同步至 ElasticSearch。左侧是源类型配置右侧是目标类型配置网络类型都选择内网实例选择刚刚创建的 MySQL 实例和 ElasticSearch 实例字符集 MySQL 根据你的创建数据库时选择的字符集来进行选择ElasticSearch 选择 utf8。时区选择 8。两个配置完后都需要点击测试连接。当 MySQL 测试连接通过后在左侧最下面选择需要同步去 ElasticSearch 的数据库。选择完毕后点击下一步。2.功能配置如果没有特殊需求所有保持不动即可在任务描述里可编写当前任务是 xx库.xx表 同步至 ES 的 xx 索引。高级配置里的配置不进行改动。3.表action过滤勾选需要同步的表并在目标索引名称中编写 ES 的索引索引可理解为 MySQL 中的表这个索引是日后需要从 ES 中获取数据的索引名称。其余信息不动。4.数据处理在这里可以配置 ES 中对应的索引字段由于博主习惯将 MySQL 中的字段设置为小写加下划线这些字段转存到 ES 中时习惯将其设置为下划线转驼峰。在类型可选择是否要进行倒序排序如果有字段需要进行倒序索引即类似拆分搜索就选择 text 类型并添加为索引分词器选择 IK_MAX_WORD。若不需要进行倒序索引单纯作为完整关键字进行搜索则选择 keyword。配置完成后可点击下一步5.创建确认确认信息没问题便可点击创建任务。异常处理若出现异常可点击感叹号查看异常信息。随后可点击右上角的重试。ES 查看数据是否同步成功当出现状态正常时代表同步任务已经在执行。进入 Kibana并点击 ElasticSearch。点击内容中的索引可看到 Cloud Canal 创建的索引已存在且数据已同步了 20 条至 ES 中。点击小眼睛选择文档即可查看每一条数据详情。结语至此完成使用 Cloud Canal 将 MySQL 中的数据同步至 ElasticSearch 中且只要任务不停止或中断只要 MySQL 中对应表中的信息有变动便会自动同步至 ElasticSearch。