Canal1.1.8数据同步 无需自己开发代码

简介

本次canal 使用目前为止最新版本(1.1.8)、数据库使用的是Mysql8.0+
canal下载地址
下载以下两个压缩包:canal.adapter-1.1.8.tar.gz、canal.deployer-1.1.8.tar.gz


为什么使用 Canal?主从复制不可以嘛?

本文章以 mysql 同步到 mysql 为例子,如果是 mysql 同步到 mysql 的话当然可以用主从复制,如果是同步到ESh2达梦等呢。即便是 mysql 同步到 mysql,如果只想同步部分表或者更细力度的标准呢,此时我们就可以使用 canal 啦。


Mysql数据库修改内容如下

  1. 登录mysql

    mysql -u username -p password
    
  2. 查询版本号(8.0+使用以下方式创建账号即可)

    select version();
    
  3. 创建账号

    CREATE USER 'canal'@'%' IDENTIFIED BY 'canal';
    
  4. 授予权限

    GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'canal'@'%';
    
  5. 查询是否开启了binlog、以及binlog的格式是否设置的是行模式;必须是以下显示才可以

    SHOW VARIABLES WHERE Variable_name IN ('log_bin', 'binlog_format');
    

    在这里插入图片描述

  6. 开启binlog修改配置文件 my.cnf

    [mysqld]
    server-id=1  # 必须是唯一的,特别是在主从复制环境中
    log-bin=mysql安装路径/mysql8/mysql.bin #开启binlog
    # binlog的格式默认设置的是行模式如果你执行上面sql返回的不是 ROW 那就加下这个配置
    binlog-format=row
    
  7. 重启mysql

    # mysql一般都会注册成服务的并设置开机自启,直接执行如下命令
    systemctl restart mysql服务名
    

canal.deployer部署

自己创建个目录,一定要自己创建个目录,解压之后是没有目录的

  1. 创建目录

    mkdir canal-deployer
    
  2. 进入目录、并查询目录所在位置,执行如下两个命令

    1.cd canal-deployer
    2.pwd
    
  3. 解压

    tar -zxvf canal.deployer-1.1.8.tar.gz -C canal-deployer目录所在位置
    
  4. 进入 conf/example 修改配置文件 instance.properties 找到对应的地方修改即可

    canal.instance.mysql.slaveId=3306(与mysql配置文件中的server-id值不一样即可)
    canal.instance.master.address=主库的所在ip:端口号
    canal.instance.dbUsername=canal (连接mysql的账号)
    canal.instance.dbPassword=canal (连接mysql的密码)
    canal.instance.filter.regex=database_name.*(代表该库下的所有表的binlog)
    # 如果向监控具体库下具体的table
    # canal.instance.filter.regex=database_name.table_name1,database_name.table_name2 
    
  5. 启动 canal.deployer,进入bin目录

    ./startup.sh
    
  6. 【可跳过】到此可以成功监控并读取 database_name 的binlog,可以创建一个maven工程测试下是否可以监控到

    6.1 引入依赖(用1.1.4就行,一个测试程序嘛,没问题不写都行,为了排查问题对吧)

    <dependency>
        <groupId>com.alibaba.otter</groupId</
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值