当前位置: 首页 > news >正文

linux 安装 canal 的详细步骤

Canal 是阿里巴巴开源的 MySQL 数据库 binlog 的增量订阅&消费组件,在 Linux 系统上安装 Canal 的步骤如下:

一、环境准备

  1. JDK 安装
    Canal 依赖 Java 环境,需安装 JDK 8 及以上版本:

    # 以 OpenJDK 为例
    sudo apt update  # Ubuntu/Debian
    sudo apt install openjdk-11-jdk# 或 CentOS/RHEL
    sudo yum install java-11-openjdk-devel# 验证安装
    java -version
    
  2. 配置 MySQL
    修改 MySQL 配置文件(通常是 /etc/mysql/my.cnf/etc/my.cnf):

    [mysqld]
    log-bin=mysql-bin       # 开启 binlog
    binlog-format=ROW       # binlog 格式,必须为 ROW
    server-id=1             # MySQL 实例唯一 ID
    

    重启 MySQL 并创建 Canal 专用账号:

    CREATE USER 'canal'@'%' IDENTIFIED BY 'canal';
    GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'canal'@'%';
    FLUSH PRIVILEGES;
    

二、下载并安装 Canal

  1. 下载 Canal 发行包
    从 Canal GitHub 仓库 下载最新稳定版(例如 canal.deployer-1.1.5.tar.gz):

    wget https://github.com/alibaba/canal/releases/download/canal-1.1.5/canal.deployer-1.1.5.tar.gz
    tar -zxvf canal.deployer-1.1.5.tar.gz -C /opt/canal/
    
  2. 配置 Canal 实例
    进入 conf 目录,复制示例配置并编辑:

    cd /opt/canal/conf/
    cp example instance_name  # instance_name 为自定义实例名,如 mysql_test
    cd instance_name
    vi instance.properties
    

    修改以下配置项:

    canal.instance.master.address=127.0.0.1:3306  # MySQL 地址和端口
    canal.instance.dbUsername=canal                # MySQL 用户名
    canal.instance.dbPassword=canal                # MySQL 密码
    canal.instance.defaultDatabaseName=            # 监控的数据库,留空则监控所有
    canal.instance.connectionCharset=UTF-8        # 字符集
    canal.instance.filter.regex=.*\\..*            # 表过滤规则,例如 test\\..* 表示 test 库下的所有表
    

三、启动 Canal

  1. 启动脚本
    使用内置脚本启动 Canal 服务:

    cd /opt/canal/bin
    ./startup.sh [instance_name]  # 可选实例名,不指定则启动所有实例
    
  2. 查看日志
    检查服务是否正常启动:

    # 查看主服务日志
    cat /opt/canal/logs/canal/canal.log# 查看实例日志
    cat /opt/canal/logs/instance_name/instance.log
    

    若看到 start successful 则表示启动成功。

四、验证安装

  1. 客户端测试
    使用 Canal 自带的客户端工具测试连接:

    cd /opt/canal/bin
    ./canal_client.sh
    

    在客户端中输入 show info 查看状态。

  2. 编程验证
    通过代码连接 Canal Server,消费 binlog 数据(以 Java 为例):

    // 添加依赖(Maven)
    <dependency><groupId>com.alibaba.otter</groupId><artifactId>canal.client</artifactId><version>1.1.5</version>
    </dependency>// 代码示例
    CanalConnector connector = CanalConnectors.newSingleConnector(new InetSocketAddress("127.0.0.1", 11111),"instance_name", "", "");
    connector.connect();
    connector.subscribe(".*\\..*");while (true) {Message message = connector.get(100);List<CanalEntry.Entry> entries = message.getEntries();// 处理 entries...
    }
    

五、停止服务

cd /opt/canal/bin
./stop.sh [instance_name]  # 可选实例名,不指定则停止所有

常见问题

  1. 连接失败
    检查 MySQL 配置、用户权限及网络连通性。

  2. 权限不足
    确保 Canal 账号拥有 REPLICATION SLAVEREPLICATION CLIENT 权限。

  3. 内存溢出
    编辑 bin/startup.sh,调整 JVM 内存参数(如 JAVA_OPTS="-Xms256m -Xmx512m")。

通过以上步骤,你可以在 Linux 系统上成功安装并配置 Canal,实现 MySQL binlog 的增量订阅与消费。

http://www.xdnf.cn/news/864685.html

相关文章:

  • Linux I2C 子系统全解:结构、机制与工程实战
  • Hive开窗函数的进阶SQL案例
  • stm32使用hal库模拟spi模式3
  • git cherry-pick (28)
  • Redis初识
  • 华为ICT和AI智能应用
  • 深入理解系统:UML类图
  • YOLO12 改进|融入 Mamba 架构:插入视觉状态空间模块 VSS Block 的硬核升级
  • OpenCV C++ 学习笔记(六):绘制文本、几何绘图、查找/绘制轮廓
  • [蓝桥杯]取球博弈
  • 【发布实录】云原生+AI,助力企业全球化业务创新
  • Odoo17 技巧 | 如何获取Selection字段的显示值五种方法
  • Cisco IOS XE WLC 任意文件上传漏洞复现(CVE-2025-20188)
  • powershell 安装 .netframework3.5
  • CentOS7 + JDK8 虚拟机安装与 Hadoop + Spark 集群搭建实践
  • .Net Framework 4/C# 集合和索引器
  • C++ 使用 ffmpeg 解码本地视频并获取每帧的YUV数据
  • .NET 9中的异常处理性能提升分析:为什么过去慢,未来快
  • .net jwt实现
  • 12.RSA
  • 使用 React Native 开发鸿蒙运动健康类应用的​​高频易错点总结​​
  • 基于BP神经网络的语音特征信号分类
  • THUNDER:用“听回去”的方式让数字人说话更像真人
  • 内网穿透之Linux版客户端安装(神卓互联)
  • 【学习笔记】TCP 与 UDP
  • 化学方程式配平免费API接口教程
  • 图像处理、图像分析和图像理解的定义、联系与区别
  • vue 多端适配之pxtorem
  • 论文阅读笔记——Large Language Models Are Zero-Shot Fuzzers
  • 如何安全高效的文件管理?文件管理方法