b. canal的原理是模拟自己为mysql slave,所以这里一定需要做为mysql slave的相关权限.
  1. CREATE USER canal IDENTIFIED BY 'canal';
  2. GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'canal'@'%';
  3. -- GRANT ALL PRIVILEGES ON *.* TO 'canal'@'%' ;
  4. FLUSH PRIVILEGES;

针对已有的账户可直接通过grant

  • 基于canal的docker模式快速启动,参考:
  • 如何将canal链接aliyun rds,参考:Aliyun RDS QuickStart
  1. 下载canal

直接下载
访问: ,会列出所有历史的发布版本包下载方式,比如以1.0.17版本为例子:

  1. wget https://github.com/alibaba/canal/releases/download/canal-1.0.17/canal.deployer-1.0.17.tar.gz

or

  1. git clone git@github.com:alibaba/canal.git
  2. cd canal;
  3. mvn clean install -Dmaven.test.skip -Denv=release

编译完成后,会在根目录下产生target/canal.deployer-$version.tar.gz

  1. 解压缩

解压完成后,进入/tmp/canal目录,可以看到如下结构:

  1. drwxr-xr-x 2 jianghang jianghang 136 2013-02-05 21:51 bin
  2. drwxr-xr-x 4 jianghang jianghang 160 2013-02-05 21:51 conf
  3. drwxr-xr-x 2 jianghang jianghang 1.3K 2013-02-05 21:51 lib
  4. drwxr-xr-x 2 jianghang jianghang 48 2013-02-05 21:29 logs
  1. 配置修改

应用参数:

    1. #################################################
    2. ## mysql serverId
    3. canal.instance.mysql.slaveId = 1234
    4.  
    5. #position info,需要改成自己的数据库信息
    6. canal.instance.master.address = 127.0.0.1:3306
    7. canal.instance.master.journal.name =
    8. canal.instance.master.position =
    9. canal.instance.master.timestamp =
    10.  
    11.  
    12. #canal.instance.standby.address =
    13. #canal.instance.standby.journal.name =
    14. #canal.instance.standby.position =
    15. #canal.instance.standby.timestamp =
    16.  
    17.  
    18. #username/password,需要改成自己的数据库信息
    19. canal.instance.dbUsername = canal
    20. canal.instance.defaultDatabaseName =
    21. canal.instance.connectionCharset = UTF-8
    22.  
    23.  
    24. #table regex
    25. canal.instance.filter.regex = ._\.._
    26.  
    27.  
    28. #################################################
    29.  
    • canal.instance.connectionCharset 代表数据库的编码方式对应到java中的编码类型,比如UTF-8,GBK , ISO-8859-1
    1. 准备启动
    1. 查看日志
    1. vi logs/canal/canal.log
    1. 2013-02-05 22:45:27.967 [main] INFO com.alibaba.otter.canal.deployer.CanalLauncher - ## start the canal server.
    2. 2013-02-05 22:45:28.113 [main] INFO com.alibaba.otter.canal.deployer.CanalController - ## start the canal server[10.1.29.120:11111]
    3. 2013-02-05 22:45:28.210 [main] INFO com.alibaba.otter.canal.deployer.CanalLauncher - ## the canal server is running now ......

    具体instance的日志:

    1. vi logs/example/example.log
    1. 关闭

      it's over.