代码编织梦想

基于上一篇文章:https://blog.csdn.net/Coder_Boy_/article/details/111055381

这里主要基于Canal Admin搭建一个MySQL增量数据管理运维web平台

Canal Admin是为canal提供整体配置管理、节点运维等面向运维的功能,提供相对友好的WebUI操作界面,方便更多用户快速和安全的操作

实际安装使用中会遇到一些坑,所以作为踩坑笔记,介绍本地安装使用情况。

canal-admin 需依赖canal,且canal版本>=1.1.4


具体流程

1.下载canal-admin

https://hub.fastgit.org/alibaba/canal/releases/download/canal-1.1.4/canal.admin-1.1.4.tar.gz

2.解压

3.初始化本地数据库
连接本地数据库,导入conf/canal_manager.sql

mysql -uroot -p

# 导入初始化SQL
> source conf/canal_manager.sql

cd 到解压目录  D:\DevResource\ELK\canal.admin-1.1.4 (你自己的安装目录

 

4.修改配置文件
 conf/application.yml

server:
  port: 8089
spring:
  jackson:
    date-format: yyyy-MM-dd HH:mm:ss
    time-zone: GMT+8

spring.datasource:
  address: 127.0.0.1:3306
  database: canal_manager
  username: root
  password: 123456 ## 你自己的数据库密码
  driver-class-name: com.mysql.cj.jdbc.Driver
  url: jdbc:mysql://${spring.datasource.address}/${spring.datasource.database}?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=UTC
  hikari:
    maximum-pool-size: 30
    minimum-idle: 1

canal:
  adminUser: admin
  adminPasswd: admin

5.启动
bin/startup.sh
访问 http://127.0.0.1:8089/ ,默认用户和密码:admin/123456,若访问失败,排查logs下面的日志文件,定位错误原因

启动日志

这里需要注意:你的数据库版本,默认使用MySQL5.1的驱动包,如果你的是MySQL8 需要替换成如下包

 

 

启动后打开浏览器访问 http://localhost:8089/

canal-admin中此时集群管理,Server管理,Instance管理都没有数据,需要下面的一些配置。

6.canal配置文件修改

到Canal那边配置


修改canal下的配置文件
 conf/canal_local.properties

# register ip
canal.register.ip =127.0.0.1

# canal admin config
canal.admin.manager = 127.0.0.1:8089
canal.admin.port = 11110
canal.admin.user = admin
canal.admin.passwd = 6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9
# admin auto register
canal.admin.register.auto = true
canal.admin.register.cluster =

使用配置canal_local.properties启动canal
startup.sh local

访问canal-admin这边,新建一个对应的Server与canal_local.properties中配置对应

确定后,可以看到自动出现了一个Server,可在此页面进行Server的配置、修改、启动、查看log等操作

下面接着配置

Instance列表新增Instance,可选择载入模版进行修改

 

 

上图中meta.dat存储着 单机搭建模式下的元数据的信息,如果是集群搭建模式,需要zookeeper来协调服务并管理元数据。 本文是单机搭建

上面对应关系的example一定要一致(名称可以随意,但要一致)

运行InstanceServer,查看logs,若无异常信息,则说明配置成功

都配置好后,你的 canal server 所在的服务器的服务再次启动时,会优先以web-ui 中配置的配置文件 执行 。

源码拓展部分

查看源码发现有个问题,如下截图所述:

源码跟踪:

下面是刷新走的代码逻辑: 不清楚官方为啥页面刷新就会重启启动所有instance,即使你之前stop了

 

 希望大家注意这个问题,不然疑问:我明明停止了Instance了,为啥还是运作中的,看下源码就知道了。

记录一下这个bug

在server1启动后,挂载在它下面的instance无法停止掉,会被自动刷新重启,不知道官网这里有何用意(还是有特殊场景),问题已提交阿里Canal issue

 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接: https://blog.csdn.net/Coder_Boy_/article/details/111085898

树莓派的frp开机自动启动-爱代码爱编程

树莓派的frp开机自动 方法之一:使用systemctl控制开机自动启动,这个方法比较方便好用。 增加两个文件,frps.service和frpc.service,并在开机时自动运行。 1、 #sudo nano /lib/systemd/system/frps.service 在frps.service里写入以下内容: (代码/var/frp/是frp

七.shell应用示例-爱代码爱编程

• 用户管理脚本 • 倒计时 • 数据库备份 • 服务自动部署示例 • 自动登陆脚本 一.用户建立脚本 • 执行users_create.sh userlist passlist • 建立userlist列表中的用户 • 设定userlist列表中的密码为passlist列表中的密码 • 当脚本后面跟的文件个数不足两时,报错 • 当文件行数不一致时报错

Kubernetes-污点和容忍-爱代码爱编程

污点和容忍 污点(Taints) 前面的调度方式都是站在Pod的角度上,通过在Pod上添加属性,来确定Pod是否要调度到指定的Node上,其实我们也可以站在Node的角度上,通过在Node上添加污点属性,来决定是否允许Pod调度过来。 Node被设置上污点之后就和Pod之间存在了一种相斥的关系,进而拒绝Pod调度进来,甚至可以将已经存在的Pod驱逐出去

linux运维工程师应具备哪些技能-爱代码爱编程

对于我们这些刚入门的运维小白来说,极强的好奇心总会驱使我们去涉猎各种技术,弄到最后很可能该学的知识半懵半解,知识体系混乱,学习毫无章法。因此,我们学习时要有一个明确的目标和知识体系(也是我学习的目标),下面大概向大家介绍以下优秀的运维人员应当具备哪些技能: 1、Linux系统基础入门-Linux的基础知识内容,和命令使用,以及用户和权限等核心知识点 2、L

疫情下的IT运维-爱代码爱编程

度过了“最好的”2019,却迎来了“史无前例”的2020。疫情犹如绞肉机,将本不景气的传统行业绞的更加支离破碎。时代进入到了拐点,他甩下了一批人,也成就了一批人。纵观过去的IT行业,每一次技术的迭代更新,总会经历一个循序渐进的过程。但是今年,在新冠疫情的推动下,云计算以势如破竹之势,席卷了各个行业。由于大量的员工还在处于在家办公室的状态,各个公司发现他们前

推荐一款日志切割神器,好用到爆!!-爱代码爱编程

来源:r6d.cn/QN53 对于 Linux 系统安全来说,日志文件是极其重要的工具。不知为何,我发现很多运维同学的服务器上都运行着一些诸如每天切分 Nginx日志之类的 CRON 脚本,大家似乎遗忘了 Logrotate,争相发明自己的轮子,这真是让人沮丧啊!就好比明明身边躺着现成的性感美女,大家却忙着自娱自乐,罪过! logrotate

【数据库】史上最详细的mysql执行计划总结-爱代码爱编程

文章目录 前言一、 explain解析1.1 id列1.1.1 案例11.1.2 案例21.2 select_type列SIMPLEPRIMARY 和 DEPENDENT SUBQUERYSUBQUERYDERIVEDUNIONUNION RESULT1.3、table列1.4 type列NULLconstsystemeq_refrefrangei

MySQL中boolean类型设置(想法分享)-爱代码爱编程

【辰兮要努力】:hello你好我是辰兮,很高兴你能来阅读,博客昵称是希望自己能不断精进,向着优秀程序员前行! 博客来源于项目以及编程中遇到的问题总结,偶尔会有读书分享,我会陆续更新Java前端、后台、数据库、项目案例等相关知识点总结,感谢你的阅读和关注,希望我的博客能帮助到更多的人,分享获取新知,大家一起进步! 吾等采石之人,应怀大教堂之心,愿你们奔

数据库基础复习(四)-爱代码爱编程

1.变量 1.系统变量:全局变量,会话变量。 2.自定义变量:用户变量,局部变量。 1.系统变量:变量由系统提供,不是用户定义,属于服务器层面。 #1、查看所有系统变量 show global variables; #查看全局变量 show session variables; #查看会话变量 show variables;

mysql优化之索引扫描排序-爱代码爱编程

前言: mysql有两种方式可以生成有序的结果:通过排序操作或者按索引顺序扫描,如果explain出来的type列的值为index,则说明mysql使用了索引扫描来做排序。 扫描索引本身是很快的,因为只需要从一条索引记录移动到紧接着的下一条记录。但如果索引不能覆盖查询所需的全部列,那么就不得不每扫描一条索引记录就得回表查询一次对应的行,这基本都是随机I

MySQL 手动配置环境变量(详细)-爱代码爱编程

问题 Win键+r打开运行对话框,输入cmd回车: 输入mysql,显示:‘mysql’ 不是内部或外部命令,也不是可运行的程序或批处理文件。 第一步 打开控制面板,进入所有控制面板项,再进入系统,选择高级系统设置。 第二步 选择高级,点击环境变量。 第三步 在系统变量区域内选择 Path ,双击。 第四步 点击新建。

Task00/01:数据库环境搭建及初步了解-爱代码爱编程

数据库环境搭建及初步了解 Task00:绪论 - 环境搭建Task01:初识数据库练习题 Task00:绪论 - 环境搭建 如何安装mysql8.0 Task01:初识数据库 练习题 1.1 编写一条 CREATE TABLE 语句,用来创建一个包含表 1-A 中所列各项的表 Addressbook (地址簿),并为 regist_no