canal安装

Canal是一个开源的数据库同步工具,支持MySQL、Oracle、PostgreSQL等主流数据库,可以实现数据实时同步,从而满足业务需求。本文将介绍如何安装和配置Canal。

一、安装

1.下载Canal安装包

可以从Canal官网(http://canal.alibaba.com/)下载Canal安装包,也可以从GitHub上下载。

2.解压Canal安装包

将下载的Canal安装包解压到指定的目录,例如:/opt/canal。
tar -zxvf canal.deployer-1.1.4.tar.gz -C /opt/canal

3.修改Canal配置文件

在/opt/canal/conf目录下,可以找到canal.properties文件和instance.properties文件,这两个文件是Canal的配置文件。按照自己的实际情况修改这两个文件,例如设置Canal的监听端口、数据库连接信息、数据同步规则等。

二、启动

进入Canal安装目录,执行如下命令启动Canal Server:
sh bin/startup.sh

三、配置数据源

在实际使用Canal时,还需要配置数据源。可以使用Canal的客户端管理工具canal-admin来配置。

四、安装canal-admin

部署

下载 canal-admin, 访问 release 页面 , 选择需要的包下载, 如以 1.1.4 版本为例
wget https://github.com/alibaba/canal/releases/download/canal-1.1.4/canal.admin-1.1.4.tar.gz

解压缩

mkdir /tmp/canal-admin
tar zxvf canal.admin-$version.tar.gz -C /tmp/canal-admin
配置修改
vi conf/application.yml

server:
  port: 8089
spring:
  jackson:
    date-format: yyyy-MM-dd HH:mm:ss
    time-zone: GMT+8

spring.datasource:
  address: 127.0.0.1:3306
  database: canal_manager
  username: canal
  password: canal
  driver-class-name: com.mysql.jdbc.Driver
  url: jdbc:mysql://${spring.datasource.address}/${spring.datasource.database}?useUnicode=true&characterEncoding=UTF-8&useSSL=false
  hikari:
    maximum-pool-size: 30
    minimum-idle: 1

canal:
  adminUser: admin
  adminPasswd: admin

初始化元数据库
mysql -h127.1 -uroot -p

导入初始化SQL

source conf/canal_manager.sql
a. 初始化SQL脚本里会默认创建canal_manager的数据库,建议使用root等有超级权限的账号进行初始化 b. canal_manager.sql默认会在conf目录下,也可以通过链接下载 canal_manager.sql

启动

sh bin/startup.sh
查看 admin 日志
o.s.b.a.web.servlet.WelcomePageHandlerMapping - Adding welcome page: class path resource [public/index.html]
此时代表canal-admin已经启动成功,可以通过 http://127.0.0.1:8089/ 访问,默认密码:admin/123456

关闭

sh bin/stop.sh

canal-server端配置

使用canal_local.properties的配置覆盖canal.properties

# register ip
canal.register.ip =

# canal admin config
canal.admin.manager = 127.0.0.1:8089
canal.admin.port = 11110
canal.admin.user = admin
canal.admin.passwd = 4ACFE3202A5FF5CF467898FC58AAB1D615029441
# admin auto register
canal.admin.register.auto = true
canal.admin.register.cluster =
启动admin-server即可。

或在启动命令中使用参数:
sh bin/startup.sh local指定配置

用户表权限调整

requestGet for canal config error: Error[INSERT command denied to user ‘canal’@‘127.0.0.1’ for table ‘canal_node_server’]
canal报错,解决方法,将数据库切到canal_manager,使用以下命令即可
GRANT INSERT ON canal_node_server TO 'canal'@'%'
同样新增集群也会报这个错,类似命令:
GRANT INSERT ON canal_cluster TO 'canal'@'%'
模板保存也是
GRANT INSERT ON canal_config TO 'canal'@'%'
使用local启动的时候要创建相应的模板。

你可能感兴趣的:(elasticsearch,java)