在Centos7上安装和配置canal

news2024/9/23 11:13:20

1. 在 MySQL 数据库中创建 Canal 账户并为其授权

在安装 Canal 前,你需要在 MySQL 数据库中创建一个用于 Canal 连接的账户,并为该账户授予必要的权限。

以下是在 MySQL 数据库中创建 Canal 账户并为其授权的步骤:

  1. 登录 MySQL
    使用以下命令登录 MySQL:
mysql -u root -p

输入你的 MySQL root 账户密码后,进入 MySQL 控制台。

  1. 创建 Canal 账户
    使用以下命令在 MySQL 数据库中创建一个名为 canal 的账户,并设置密码:
CREATE USER 'canal'@'%' IDENTIFIED BY '密码';

这里我们将 canal 的密码设置为 canal。请注意,上面的命令中,% 表示可以从任何 IP 地址连接到 MySQL 数据库。

  1. 授权 Canal 账户
    使用以下命令为 canal 账户授权:
GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'canal'@'%';

这将授予 canal 账户在所有数据库中的表上执行 SELECT 操作,以及执行 MySQL 复制所需的权限。

  1. 刷新权限
    使用以下命令刷新 MySQL 权限:
FLUSH PRIVILEGES;

完成以上步骤后,你就可以在 Canal 配置文件中使用新创建的 canal 账户连接到 MySQL 数据库了。请记得在 canal.properties 配置文件中使用正确的账户名和密码。

2.在 MySQL 中开启二进制日志(binlog)功能

是的,为了能够让 Canal 实时地获取 MySQL 的数据变更,你需要在 MySQL 中开启二进制日志(binlog)功能,并确保 binlog 格式为 ROW。

以下是在 MySQL 中开启 binlog 并设置 binlog 格式为 ROW 的步骤:

  1. 登录 MySQL
    使用以下命令登录 MySQL:
mysql -u root -p

输入你的 MySQL root 账户密码后,进入 MySQL 控制台。

  1. 查看当前 binlog 状态
    使用以下命令查看当前 MySQL 中 binlog 的状态:
show variables like '%binlog%';
  1. 开启 binlog
    如果 MySQL 的 binlog 状态为 OFF,使用以下命令开启 binlog:
set global binlog_format=ROW;
set global binlog_row_image=full;
set global binlog_checksum=NONE;
set global binlog_enabled=ON;
SET GLOBAL expire_logs_days = 7;
  1. 配置 binlog
    使用以下命令修改 MySQL 的配置文件,启用 binlog 并设置 binlog 格式为 ROW:
vi /etc/my.cnf

在 my.cnf 文件中添加以下内容:

[mysqld]

log-bin=mysql-bin
binlog-format=ROW
binlog_row_image=full
binlog_checksum=NONE
# 设置binlog文件的过期时间(可选)
expire_logs_days=7

这些配置选项将启用binlog功能、设置binlog格式为ROW、记录完整的行数据、禁用binlog校验和,以及(可选)设置binlog文件的过期时间。这样的设置将确保MySQL与Canal进行数据同步的兼容性。

  1. 重启 MySQL
    使用以下命令重启 MySQL 以应用新的 binlog 配置:
systemctl restart mysqld

完成以上步骤后,你已经成功地开启了 MySQL 的 binlog,并设置了 binlog 格式为 ROW。现在,你可以在 Canal 配置文件中配置连接到 MySQL 并监控 MySQL 的数据变更。

3. 在CentOS 7上安装canal:

  1. 确保系统已安装Java环境:Canal需要JDK 1.8或更高版本。您可以通过运行以下命令检查Java版本:
java -version

如果没有安装Java,请使用以下命令安装OpenJDK 1.8:

sudo yum install java-1.8.0-openjdk
  1. 下载canal预发布版本:https://github.com/alibaba/canal/releases/tag/canal-1.1.7-alpha-2,选择需要的组件(例如:canal.deployer-1.1.7-SNAPSHOT.tar.gz)并上传到您的CentOS 7系统。
    在这里插入图片描述
这些文件都是canal-1.1.7-alpha-2预发布版本的不同组件,它们之间的区别如下:
1. canal.adapter-1.1.7-SNAPSHOT.tar.gz(236 MB,发布于1月4日):这个包含了canal适配器组件,用于在不同数据源和数据目标之间进行数据同步。
2. canal.admin-1.1.7-SNAPSHOT.tar.gz(37.5 MB,发布于1月4日):这个包含了canal的管理组件,用于对canal集群进行管理、监控和配置。
3. canal.deployer-1.1.7-SNAPSHOT.tar.gz(102 MB,发布于1月4日):这个包含了canal部署组件,用于部署、启动和停止canal服务。
4. canal.example-1.1.7-SNAPSHOT.tar.gz(23.1 MB,发布于1月4日):这个包含了一些canal的示例项目,帮助用户了解如何使用和配置canal进行数据同步。
这些组件都是为了实现canal数据同步工具的不同功能而设计的。用户可以根据自己的需求选择相应的组件进行下载和使用。
  1. 解压缩下载的文件:
tar -zxvf canal.deployer-1.1.7-SNAPSHOT.tar.gz

解压后,您将看到一个名为canal.deployer-1.1.7-SNAPSHOT的目录。

  1. 配置canal:进入解压后的目录,找到conf文件夹,然后编辑example/instance.properties文件,根据您的MySQL/MariaDB设置配置canal。
cd canal.deployer-1.1.7-SNAPSHOT/conf
vim example/instance.properties

至少需要修改以下设置:

canal.instance.master.address=your_mysql_server_ip:3306
canal.instance.dbUsername=your_mysql_username
canal.instance.dbPassword=your_mysql_password

在这里插入图片描述

  1. 启动canal服务:
cd ../bin
./startup.sh

现在,canal已经启动并运行在您的CentOS 7系统上。您可以通过查看日志文件(位于logs目录)来检查运行状态和潜在问题。如果需要停止canal服务,可以运行:

./stop.sh

这些步骤将在CentOS 7上安装并启动canal服务。在实际应用中,您可能还需要配置其他组件,例如canal.adapter、canal.admin等,具体取决于您的需求。

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

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

相关文章

B019_子查询篇

2022-4-30 18:11:32 通过本章学习,您将可以: 描述子查询可以解决的问题。 定义子查询。 列出子查询的类型。 书写单行子查询和多行子查询 MEGER INTO的使用 WITH 子句🏆CHAPTER 12 Subqueries & Merge Statements子查询和合并语句 子查询——嵌套在另一个查询中的查…

MyBatis:使用代码整合

文章目录 MyBatis:Day 04框架1. 依赖:pom.xml2. 外部配置文件:db.properties3. 核心配置文件:mybatis-config.xml4. 实体类5. 接口:xxxMapper.java6. 实现类:xxxMapper.xml7. 测试 MyBatis:Day …

DTC 2023回顾丨基于数据复制技术的多写多读数据库集群解决方案

在不久前结束的2023 DTC数据技术嘉年华中国数据库创新论坛上,GBASE南大通用8s产品经理郭茁老师分享了GBase 8s《基于数据复制技术的多写多读数据库集群解决方案》。 今天带大家一同回顾下本次演讲。 海量数据的存储和运算是目前行业内面临的一个重要问题&#xff0…

真实logging的构建

import logging import os.path import timeimport colorlog from logging.handlers import RotatingFileHandlerdefault_formats {# 终端输出格式color_format: %(log_color)s%(asctime)s-%(name)s-%(filename)s-[line:%(lineno)d]-%(levelname)s-[log-messge]: %(message)s,…

【Hydro】半图解法调洪演算步骤,附Python代码

说明 半图解法计算步骤如下: (1)根据水位~库容关系、水位~泄流关系以及计算时段等绘制辅助曲线; (2)确定起调水位 Z 1 Z_1 Z1​及相应的 q 1 q_1 q1​、 V 1 V_1 V1​计算各时段平均入库流量 Q p Q_p Qp​; (3)在水位坐标轴上确定…

使OpenGauss支持Python3存储过程

目录 一、概述 二、编译opengauss支持Python3存储过程 三、还有问题 一、概述 OpenGauss是可以支持以Python2、3编写存储过程的,但是这个功能默认不开启,想要这个功能要自己编译源码,目前这部分源码感觉不够成熟,还有一些问题&…

Linux必会100个命令(六十)curl

在Linux中curl是一个利用URL规则在命令行下工作的文件传输工具,可以说是一款很强大的http命令行工具。它支持文件的上传和下载,是综合传输工具。 curl选项比较多,使用man curl或者curl -h获取帮助信息。 -a/--append …

ClickHouse学习笔记(五):ClickHouse 副本与分片

文章目录 1、概述2、数据副本2.1、副本的特点2.2、副本的定义形式 3、ReplicatedMergeTree 原理解析3.1、数据结构3.1.1 ZooKeeper 内的节点结构3.1.2 Entry 日志对象的数据结构 3.2、副本协同的核心流程3.2.1、INSERT 的核心执行流程3.2.2、MERGE 的核心执行流程3.2.3、MUTATI…

【LeetCode股票买卖系列:714. 买卖股票的最佳时机含手续费 | 暴力递归=>记忆化搜索=>动态规划】

🚀 算法题 🚀 🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀 🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨ 🌲 作者简介:硕风和炜,…

【Vue 基础】尚品汇项目-07-动态展示三级联动数据

由于TypeNav是全局组件,因此将“src/pages/Home”中的“TypeNav”文件夹移动到“src/components”文件夹中 在main.js中修改TypeNav的路径 删除测试请求部分代码 当组件挂载完毕,可以向服务器发请求,然后获取数据,显示数据了。在“…

maven从入门到精通 第二章 Maven中运行Java与Web项目

这里写自定义目录标题 一 maven中运行Java项目1.新建项目2. 运行项目2.1查看当前目录2.2 编译项目2.3测试当前项目2.4 生成jar包2.5 迁移数据位置 二 MAVEN中执行Web项目1.配置项目1.1 配置 web.html1.2 配置index.jsp1.3 注册servlet1.4 直接编译运行,发现配置失败…

机器人工程学习和研究的结构性失衡

结论:无解,谁是那屈指可数的幸运者/(ㄒoㄒ)/~~ 供给:培养的机器人工程专业人才 需求:市场企业主体招聘的相关人才 不匹配,错配,导致供给无效。 机器人工程学习和研究的结构性失衡可能是由多种原因导致的…

Java学习-MySQL-备份

Java学习-MySQL-备份 为什么要备份: 1.保证重要的数据不丢失 2.数据转移 MySQL数据库备份的方式: 1.直接拷贝物理文件 2.在Sqlyog 这种可视化工具中导出 3.使用命令行导出,mysqldump,命令行使用 Sqlyog导出表 1.右键表 → 备…

智慧畜牧三维可视化,图扑数字孪生赋能现代农业

前言 "畜牧业是我国重要的农业产业之一,对于国民经济的发展和人民群众的生活具有重要的意义。智慧畜牧作为现代畜牧业的发展方向之一,将信息技术和现代管理相结合,提高养殖效率和品质,为行业的可持续发展注入新的动力。智慧…

PySpark基础入门(5):Spark 内核调度

目录 Spark 内核调度 DAG 内存迭代计算 Spark并行度 Spark任务调度流程 Spark 内核调度 Spark任务调度:如何组织任务去处理RDD中每个分区的数据,根据RDD的依赖关系构建DAG,基于DAG划分Stage,将每个Stage中的任务发到指定节…

盘点那些免费开源、无比精致的图标库,无论是设计还是开发,都很好用

之前分享过很多好看精致的图标库,这对日常设计和开发工作,都很方便,欢迎大家尝试。 css.gg 详细介绍:https://www.thosefree.com/css-gg 一套漂亮的纯 CSS 实现的免费开源图标库,700多个时尚漂亮的 css 图标库&…

本地开发项目删除原有git信息,上传到自己的git仓库

1. 删除原有git信息 进入到项目的目录,右键,选择 git Bash Here 输入 rm -rf .git 查看当前的远程信息:git remote -v 如果有远程信息 使用 git remote rm origin 删除 2.添加自己的远程信息 使用 git remote add origin https://xxxx.git…

分布式事务 --- Seata事务模式、高可用

一、事务模式 1.1、XA模式 XA 规范 是 X/Open 组织定义的分布式事务处理(DTP,Distributed Transaction Processing)标准,XA 规范 描述了全局的TM与局部的RM之间的接口,几乎所有主流的数据库都对 XA 规范 提供了支持。…

三种常用的以太网端口链路类型:Access、Hybrid和Trunk

以太网是计算机网络中最常用的协议之一,它允许计算机在同一局域网上通信。在以太网中,交换机(Switch)是一个重要的组件,它们有许多不同的端口,用于连接不同的设备。为了管理和维护这些端口,有三…

Java 数组在内存中的结构是怎样的?数组访问、遍历、复制、扩容、缩容如何编写代码?

Java是一门面向对象的编程语言,数组是其中的重要数据结构之一。在Java中,数组是一种固定长度、有序的数据结构,可以存储一组相同数据类型的元素。在本文中,我们将详细介绍Java数组在内存中的结构。 Java数组的定义 在Java中&…