Canal笔记

原创 2015年11月19日 21:29:05

Canal使用

什么是Canal

简单来说Canal是用于读取binlog日志的工具(太简单了)。
如果需要对数据做同步,可以使用canal。

安装Canal

    准备工作
binlog:开通binlog日志,以及canal用户
python
[mysqld]
log-bin=mysql-bin #添加这一行就ok
binlog-format=ROW #选择row模式
server_id=1 #配置mysql replaction需要定义,不能和canal的slaveId重复

设置canal权限

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

安装canal

wget https://github.com/alibaba/canal/releases/download/canal-1.0.17/canal.deployer-1.0.17.tar.gz  --下载
mkdir /tmp/canal --创建目录
tar zxvf canal.deployer-$version.tar.gz  -C /tmp/canal  --解压

修改配置文件

    vi conf/example/instance.properties
    ## mysql serverId
    canal.instance.mysql.slaveId = 1234 ->这个id随便起。不能和my_sql的server_id重复
    # position info,需要改成自己的数据库信息
    canal.instance.master.address = 127.0.0.1:3306  
    canal.instance.master.journal.name =   
    canal.instance.master.position =   ->其实position,不设置则从当前点开始查询
    canal.instance.master.timestamp = 

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

    # username/password,需要改成自己的数据库信息
    canal.instance.dbUsername = canal  
    canal.instance.dbPassword = canal
    canal.instance.defaultDatabaseName =  
    canal.instance.connectionCharset = UTF-8

    # table regex
    canal.instance.filter.regex = .*\\..*   ->正则表达式,可以设置过滤条件,可以只查某个表的数据

启动Canal

        sh bin/startup.sh

错误处理

启动canal时,有时候会报一些问题,查看日志,关于server_id的问题,发生在mysql没有设置server_id
有时候mySql重启之后,会出现startposition的问题,当前的positon已经是最后的positon。这种情况删除节点”example”之后,即可。如果还不行,重新安装一遍。

相关文章推荐

canal部署与实例运行

1、准备: github:https://github.com/alibaba/canal 里面有包括canal的文档,server端 client端的 例子 源码包等等。 2、ca...

canal部署与实例运行

1、安装包下载 https://github.com/alibaba/canal/releases 2、部署canal-server (1)开启mysql的binlog功能,并配置binlog模式...

搭建: canal部署与实例运行

1、准备: github:https://github.com/alibaba/canal 里面有包括server端 client端的 例子

Canal源码分析---模拟Slave同步binlog

前言通过分析Canal,完成模拟Slave同Master建立连接,然后同步Binlog的过程。 通过本文可以理解 Mysql的 Slave如何同Master进行同步的,可以自行开发MockSlave...

测试canal的数据堆积能力,如果canal可以堆积数据,那么就不需要消息队列来堆积。

测试canal的数据堆积能力,如果canal可以堆积数据,那么就不需要消息队列来堆积。结果发现 1. 如果不确认数据,每次连接后都会从第一次获取,但是由于canal不能根据时间获取数据,所以也是不方...

Canal+Otter - Canal篇(1)

Canal是阿里开源产品之一,是用java开发的基于数据库增量日志解析,提供增量数据订阅&消费的中间件。目前,Canal主要支持了MySQL的binlog解析。 为何要解析binlog: binlo...
  • zhxdick
  • zhxdick
  • 2016年03月08日 12:20
  • 9119

Canal AdminGuide canal信息介绍

先前开源了一个开源项目: 【阿里巴巴开源项目: 基于mysql数据库binlog的增量订阅&消费】     本文主要是介绍一下如何部署&使用   环境要求 1. 操作系统 ...

采用OpenReplicator解析MySQL binlog

Open Replicator是一个用Java编写的MySQL binlog分析程序。Open Replicator 首先连接到MySQL(就像一个普通的MySQL Slave一样),然后接收和分析b...

mac sublime text 3 列操作

之前就安装了sublime text 3 编辑器,看到别人用列模式操作,好酷,今天试了试。 方法: 将大量每行都类似的文本粘贴到 sublime text 3 中; command + a 全选; c...

支持mysql5.6.19的canal版本

  • 2016年02月25日 17:11
  • 9.19MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Canal笔记
举报原因:
原因补充:

(最多只允许输入30个字)