canal环境部署

docker 部署canal同步数据

1 环境:

在这里插入图片描述
2 Mysql 配置

  1. 查看 binlog 是否启用 SHOW VARIABLES LIKE ‘%log_bin%’;
  2. 在这里插入图片描述
    开启 binlog,
    修改 my.cnf
    docker cp mysql:/etc/my.cnf /data/mysql/conf 拷贝文件到临时目录修改后再拷贝回去
# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html[mysqld]
sql_mode=STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
## 开启二进制日志功能
log-bin=mall-mysql-bin
server-id=1
## 设置二进制日志使用内存大小
binlog_cache_size=1M## 设置使用的二进制日志格式
binlog_format=row## 二进制日志过期清理时间,默认值未0,表示不自动清理
expire_logs_days=7## 跳过主从复制中遇到的所有错误或者置顶类型的错误,避免slave端复制中断
## 1062 主键重复、1032主从数据不一致
slave_skip_errors=1062#
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M
#
# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin
#
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M
skip-host-cache
skip-name-resolve
datadir=/var/lib/mysql
socket=/var/run/mysqld/mysqld.sock
secure-file-priv=/var/lib/mysql-files
user=mysql# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0#log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
[client]
socket=/var/run/mysqld/mysqld.sock!includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mysql.conf.d/

问题:
在这里插入图片描述
解决:
设置bin log日志的时候,没有设置server_id参数,配置文件增加
server-id=1 ,重启服务.

3 创建订阅 binlog 账号

创建账户:create user canal IDENTIFIED by ‘canal’;
授权账户:grant select,replication slave, replication client on . to ‘canal’@‘%’;
刷新权限:flush PRIVILEGES;
查询账户;select host, user, authentication_string, plugin from user;
更新密码: ALTER USER ‘canal’@‘%’ IDENTIFIED WITH mysql_native_password BY ‘canal’;

4 Canal 配置

4.1 canal.deployer 对 conf/instance.properties 进行修改,配置你的数据库地址、账号信息
在这里插入图片描述
4.2 canal.adapter
4.2.1 application.yml 服务信息配置、es7 文件夹下同步表配置
在这里插入图片描述
4.2.2 配置数据库信息
dataSourceKey: lottery_01 是对应的读取库信息,_index: lottery.user_take_activity 是索引。

dataSourceKey: lottery_01
destination: example
groupId: g1
esMapping:_index: lottery.user_take_activity_id: _idsql: "select t.uuid as _id,t.u_id as _u_id,t.take_id as _take_id,t.activity_id as _activity_id,t.activity_name as _activity_name,t.take_date as _take_date,t.take_count as _take_count,t.strategy_id as _strategy_id,t.state as _state,t.uuid as _uuid,t.create_time as _create_time,t.update_time as _update_timefrom user_take_activity t"etlCondition: "where t.update_time>={}"commitBatch: 3000#  PUT lottery.user_take_activity
#  {
#    "mappings": {
#      "properties": {
#        "_u_id":{"type": "text"},
#        "_take_id":{"type": "text"},
#        "_activity_id":{"type": "long"},
#        "_activity_name":{"type": "text"},
#        "_take_date":{"type": "date"},
#        "_take_count":{"type": "long"},
#        "_strategy_id":{"type": "long"},
#        "_state":{"type": "long"},
#        "_uuid":{"type": "text"},
#        "_create_time":{"type": "date"},
#        "_update_time":{"type": "date"},
#      }
#    }
#  }#{
#  "mappings":{
#    "_doc":{
#      "properties":{
#        "id": {
#          "type": "long"
#        },
#        "name": {
#          "type": "text"
#        },
#        "email": {
#          "type": "text"
#        },
#        "order_id": {
#          "type": "long"
#        },
#        "order_serial": {
#          "type": "text"
#        },
#        "order_time": {
#          "type": "date"
#        },
#        "customer_order":{
#          "type":"join",
#          "relations":{
#            "customer":"order"
#          }
#        }
#      }
#    }
#  }
#}

在这里插入图片描述

4.3 Kinaba 添加索引
每需要同步一个表,就需要在 Kinaba 创建索引映射

PUT lottery.user_take_activity
{"mappings": {"properties": {"_u_id":{"type": "text"},"_take_id":{"type": "text"},"_activity_id":{"type": "long"},"_activity_name":{"type": "text"},"_take_date":{"type": "date"},"_take_count":{"type": "long"},"_strategy_id":{"type": "long"},"_state":{"type": "long"},"_uuid":{"type": "text"},"_create_time":{"type": "date"},"_update_time":{"type": "date"}}}
}

五 启动服务

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

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

相关文章

ArchLinux安装使用ifconfig

安装 sudo pacman -S net-tools 使用 ifconfig

【网络安全】网络防护之旅 - 点燃网络安全战场的数字签名烟火

​ 🌈个人主页:Sarapines Programmer🔥 系列专栏:《网络安全之道 | 数字征程》⏰墨香寄清辞:千里传信如电光,密码奥妙似仙方。 挑战黑暗剑拔弩张,网络战场誓守长。 ​ 目录 😈1. 初识…

Android studio 多渠道打包步骤

在Android Studio中,可以使用Gradle的多渠道打包功能来生成不同渠道的应用包。以下是多渠道打包的步骤: 在项目的build.gradle文件中,添加渠道相关的配置。在android节点下添加productFlavors块,定义不同的渠道,例如&…

渗透实验基础教程(完整版):

#江南的江 #每日鸡汤:影响我们人生的绝不仅仅是环境,其实是心态在控制个人的行动和思想。同时,心态也决定了一个人的视野事业和成就,甚至一生。 #初心和目标:成为网络安全达人。。。 渗透实验基础教程(完整…

UniGuiApplication的客户端信息包括以下内容:

UniGuiApplication的客户端信息包括以下内容: UserAgent: 客户端的用户代理信息,用于识别客户端的浏览器类型和版本。Browser: 客户端的浏览器类型,如Chrome、Firefox、Safari等。Platform: 客户端的操作系统平台,如Windows、Mac…

自动驾驶技术:驶向未来的智能之路

导言 自动驾驶技术正引领着汽车产业向着更安全、高效、智能的未来演进。本文将深入研究自动驾驶技术的核心原理、关键技术、应用场景以及对交通、社会的深远影响。 1. 简介 自动驾驶技术是基于先进传感器、计算机视觉、机器学习等技术的创新,旨在实现汽车在不需要人…

关于后端返回给我们的对象或者数组为空时我们把空字符(“”)串变成横杠(“-”)

根据需求,我们分别把他写成两种方法,在我们项目中可以 直接调用该方法,方法如下: 1.把数组中为空的项替换成横杠 //把数组中为空的项替换成横杠 export function filtrateData(data) { data.forEach(obj > { Object.keys(obj)…

鸿蒙(HarmonyOS)应用开发——代理提醒(题目答案)

判断题 1.构造进度条模板通知,name字段当前需要固定配置为downloadTemplate。 正确(True) 2.给通知设置分发时间,需要设置showDeliveryTime为false。 错误(False) 3.OpenHarmony提供后台代理提醒功能,在应用退居后台或退出后&#xff0c…

服务监控-druid监控

一、概述 当前互联网和很多公司,日益都采用阿里数据库连接池druid,druid本身也有监控页面,但是我们自己也需要对监控信息进行采集 ,接入自己的监控平台,因此需要能够查询的druid的监控信息 二、方案 方案一&#…

《深入理解计算机系统》学习(3):程序编译和处理器

编译过程 假设一个C程序有两个文件p1.c、p2.c,我们用Unix命令行编译这些代码: linux>gcc -o p p1.c p2.cgcc命令指的就是GCC C编译器,因为这是Linux上默认的编译器,gcc命令调用了一整套程序,将源代码转化为可执行…

Centos安装docker显示 No Package Docker-Ce Available

安装docker 查看当前系统内核 查看方式 uname -r显示如下 [root@test ~]# uname -r 3.10.0-1127.19.1.el7.x86_64重要提示: docker内核版本必须是3.10+以上的版本 1、卸载老版本的 docker 及其相关依赖 yum remove docker docker-common container-selinux docker-selin…

WEB 3D技术 简述React Hook/Class 组件中使用three.js方式

之前 已经讲过了 用vue结合three.js进行开发 那么 自然是少不了react 我们 还是先创建一个文件夹 终端执行 npm init vitelatest输入一下项目名称 然后技术选择 react 也不太清楚大家的基础 那就选择最简单的js 然后 我们就创建完成了 然后 我们用编辑器打开创建好的项目目…

Angular中使用Intersection Observer API实现无限滚动

背景&#xff1a; 实现原理为 在data下面加一个loading元素 如果此元素进入视窗 则调用api获取新的数据加到原来的数据里面&#xff0c;这时loading就会被新数据顶下去&#xff0c;如此循环。 <div id"dataContainer"></div> <div id"loadingCo…

Java之方法引用

目录 一、什么是方法引用 二、方法引用的规则 三、方法引用的分类&#xff1a; &#xff08;一&#xff09;、引用静态方法 &#xff08;二&#xff09;、引用成员方法 1、引用其他类的成员方法 2、引用本类的成员方法 3、引用父类的成员方法 &#xff08;三&#xff…

Win7系统桌面出现白色透明框的解决方案

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…

Vue3源码梳理:设计一个微型Vue的源码框架环境

目录结构设计 创建 vue-mini 目录在该目录中&#xff0c;初始化npm包&#xff1a;$ npm init -y创建package.json文件创建packages 目录&#xff0c;作为核心代码区域 在内创建vue目录&#xff1a;打包&#xff0c;测试实例&#xff0c;项目整体入口模块在内创建 shared 目录&…

高云GW1NSR-4C开发板M3核RT-Thread应用

1.仅提供RT-Thread的Nano版本 MCU工程在\EMPU(GW1NS-4C)_V1.2\ref_design\MCU_RefDesign\Keil_RefDesign\rt_thread_nano\PROJECT目录下&#xff0c;FPGA工程参考&#xff1a; 高云GW1NSR-4C开发板M3硬核应用-CSDN博客 特别注意&#xff0c;MCU主频&#xff08;即FPGA工程经P…

C#基础知识 - 变量、常量与数据类型篇

C#基础知识 - 变量、常量与数据类型篇 第3节 变量、常量与数据类型3.1 C#变量3.1.1 变量使用3.1.2 自定义变量3.1.2 接收用户输入 3.2 C#常量3.2.1 常量的使用 3.3 C#数据类型3.3.1 数据类型之值类型3.3.2 数据类型之引用类型 更多C#基础知识详解请查看&#xff1a;C#基础知识 …

Adaptive IBC :异构链互操作性的颠覆者

2024年第一季度&#xff0c;隐私协议 Secret Network 将会使用 Octopus Network 基于 Adaptive IBC 技术路线开发的 NEAR IBC&#xff0c;实现与 NEAR Protocol 之间将会实现首次跨链交互&#xff0c;这同样是 Cosmos 生态与 NEAR 之间的首次连接。整个加密世界正在成为一个越来…

ESP32网络编程实例-WebSocket服务器广播信息

WebSocket服务器广播信息 文章目录 WebSocket服务器广播信息1、软件准备2、硬件准备3、代码实现3.1 服务器代码实现3.2 客户端代码实现在本文中,我们将介绍如何向连接到 ESP32 服务器的所有 WebSocket 客户端广播消息。 1、软件准备 Arduino IDE在前面的文章中,如何搭建ESP32…