canal同步mysql到mysql主要配置

1、canal.admin 配置和启动命令

cat conf/application.yml
bash 复制代码
server:
  port: 8089
spring:
  jackson:
    date-format: yyyy-MM-dd HH:mm:ss
    time-zone: GMT+8

spring.datasource:
  address: 127.0.0.1:3308
  database: canal_manager
  username: canal
  password: canal
  #driver-class-name: com.mysql.jdbc.Driver
  driver-class-name: com.mysql.cj.jdbc.Driver
  #  8.0 添加&allowPublicKeyRetrieval=true
  url: jdbc:mysql://${spring.datasource.address}/${spring.datasource.database}?useUnicode=true&characterEncoding=UTF-8&useSSL=false
  hikari:
    auto-commit: false
    maximum-pool-size: 30000
    minimum-idle: 10

canal:
  adminUser: admin
  adminPasswd: 123456
  admin:
    registerIp: 10.1.0.98  # 集群注册使用的IP
    serverPort: 11110  # Admin服务端口

启动命令,需要先初始化数据库。

bash 复制代码
conf/canal_manager.sql 
bash 复制代码
./bin/startup.sh 

2、canal.deployer 配置和启动命令

cat canal_local.properties
bash 复制代码
# register ip
canal.register.ip = 10.1.0.98

# canal admin config
canal.admin.manager = 10.1.0.98:8089
canal.admin.port = 11110
canal.admin.user = admin
#canal.admin.passwd = 123456
# select password('123456')
# 如果遇到mysql8.0,可以使用select upper(sha1(unhex(sha1('123456'))))

canal.admin.passwd = 6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9
# admin auto register
canal.admin.register.auto = true
#canal.admin.register.cluster = default
#canal.admin.register.name = default

## 注册到Admin的配置
#canal.admin.manager.url = http://10.1.0.98:8089/api/v1/${canal.admin.manager.url.base}
#canal.admin.port = 11110
#canal.admin.user = admin
#canal.admin.passwd = 123456
#
## 自动注册配置
#canal.admin.register.auto = true
#canal.admin.register.cluster = default  # 集群名称

启动命令:

bash 复制代码
./bin/startup.sh  local

3、配置 instance

启动 canal.deployer 会自动注册到admin

配置instance

bash 复制代码
#################################################
## mysql serverId , v1.0.26+ will autoGen
# canal.instance.mysql.slaveId=0

# enable gtid use true/false
canal.instance.gtidon=false

# position info
canal.instance.master.address=127.0.0.1:3307
canal.instance.master.journal.name=
canal.instance.master.position=
canal.instance.master.timestamp=
canal.instance.master.gtid=

# rds oss binlog
canal.instance.rds.accesskey=
canal.instance.rds.secretkey=
canal.instance.rds.instanceId=

# table meta tsdb info
canal.instance.tsdb.enable=true
#canal.instance.tsdb.url=jdbc:mysql://127.0.0.1:3306/canal_tsdb
#canal.instance.tsdb.dbUsername=canal
#canal.instance.tsdb.dbPassword=canal

#canal.instance.standby.address =
#canal.instance.standby.journal.name =
#canal.instance.standby.position =
#canal.instance.standby.timestamp =
#canal.instance.standby.gtid=

# username/password
canal.instance.dbUsername=canal
canal.instance.dbPassword=canal
canal.instance.connectionCharset = UTF-8
# enable druid Decrypt database password
canal.instance.enableDruid=false
#canal.instance.pwdPublicKey=MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBALK4BUxdDltRRE5/zXpVEVPUgunvscYFtEip3pmLlhrWpacX7y7GCMo2/JM6LeHmiiNdH1FWgGCpUfircSwlWKUCAwEAAQ==

# table regex
canal.instance.filter.regex=.*\\..*
# table black regex
canal.instance.filter.black.regex=
# table field filter(format: schema1.tableName1:field1/field2,schema2.tableName2:field1/field2)
#canal.instance.filter.field=test1.t_product:id/subject/keywords,test2.t_company:id/name/contact/ch
# table field black filter(format: schema1.tableName1:field1/field2,schema2.tableName2:field1/field2)
#canal.instance.filter.black.field=test1.t_product:subject/product_image,test2.t_company:id/name/contact/ch

# mq config
canal.mq.topic=example
# dynamic topic route by schema or table regex
#canal.mq.dynamicTopic=mytest1.user,mytest2\\..*,.*\\..*
canal.mq.partition=0
# hash partition config
#canal.mq.partitionsNum=3
#canal.mq.partitionHash=test.table:id^name,.*\\..*
#################################################

4、canal.adapter 配置和启动命令

cat conf/application.yml
bash 复制代码
server:
  port: 8081
spring:
  jackson:
    date-format: yyyy-MM-dd HH:mm:ss
    time-zone: GMT+8
    default-property-inclusion: non_null

canal.conf:
  mode: tcp #tcp kafka rocketMQ rabbitMQ
  flatMessage: true
  zookeeperHosts:
  syncBatchSize: 1000
  retries: -1
  timeout:
  accessKey:
  secretKey:
  consumerProperties:
#    # canal tcp consumer
    canal.tcp.server.host: 127.0.0.1:11111
    canal.tcp.zookeeper.hosts:
    canal.tcp.batch.size: 500
    canal.tcp.username:
    canal.tcp.password:
  srcDataSources:
    defaultDS:
      url: jdbc:mysql://127.0.0.1:3307/db1?useUnicode=true&useSSL=false
      username: canal
      password: canal
  canalAdapters:
  - instance: qiji66 # canal instance Name or mq topic name
    groups:
    - groupId: g1
      outerAdapters:
      - name: logger
      - name: rdb
        key: mysql1
        properties:
          jdbc.driverClassName: com.mysql.jdbc.Driver
          # 8.0 添加&allowPublicKeyRetrieval=true
          jdbc.url: jdbc:mysql://127.0.0.1:3308/db1?useUnicode=true&useSSL=false
          jdbc.username: canal
          jdbc.password: canal
          druid.stat.enable: false
          druid.stat.slowSqlMillis: 1000
cat rdb/mytest_user.yml
bash 复制代码
## Mirror schema synchronize config
dataSourceKey: defaultDS
destination: qiji66
groupId: g1
outerAdapterKey: mysql1
concurrent: true
dbMapping:
  mirrorDb: true
  database: db1
启动
bash 复制代码
./bin/startup.sh 
相关推荐
编程爱好者熊浪2 小时前
两次连接池泄露的BUG
java·数据库
南宫乘风3 小时前
基于 Flask + APScheduler + MySQL 的自动报表系统设计
python·mysql·flask
TDengine (老段)3 小时前
TDengine 字符串函数 CHAR 用户手册
java·大数据·数据库·物联网·时序数据库·tdengine·涛思数据
qq7422349843 小时前
Python操作数据库之pyodbc
开发语言·数据库·python
姚远Oracle ACE4 小时前
Oracle 如何计算 AWR 报告中的 Sessions 数量
数据库·oracle
Dxy12393102164 小时前
MySQL的SUBSTRING函数详解与应用
数据库·mysql
码力引擎4 小时前
【零基础学MySQL】第十二章:DCL详解
数据库·mysql·1024程序员节
杨云龙UP5 小时前
【MySQL迁移】MySQL数据库迁移实战(利用mysqldump从Windows 5.7迁至Linux 8.0)
linux·运维·数据库·mysql·mssql
l1t5 小时前
利用DeepSeek辅助修改luadbi-duckdb读取DuckDB decimal数据类型
c语言·数据库·单元测试·lua·duckdb
安当加密5 小时前
Nacos配置安全治理:把数据库密码从YAML里请出去
数据库·安全