简单实践canal

canal的原理即伪装成mysql的slave,发dump命令,进行同步。

工具:mysql + canal

mysql 配置

mac电脑,直接通过dmg包进行安装,安装后在系统偏好设置中启动。

1
mysql --verbose --help | grep my.cnf

通过路径一次查找。我的电脑上所涉及的路径都没有,因此在/etc/创建了一个my.cnf,源文件地址
重新启动mysql

参考alibaba https://github.com/alibaba/canal/wiki/QuickStart

1
2
3
4
5
6
7
8
9
10
# mysql命令行

#创建canal用户
CREATE USER canal IDENTIFIED BY 'canal';

#授权
GRANT ALL PRIVILEGES ON *.* TO 'canal'@'%' ;

#刷新
FLUSH PRIVILEGES;

配置canal

下载canal:https://github.com/alibaba/canal/releases (canal.deployer-1.1.4.tar.gz)

配置修改

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
vi conf/example/instance.properties

## mysql serverId
canal.instance.mysql.slaveId = 1234
#position info,需要改成自己的数据库信息
canal.instance.master.address = 127.0.0.1:3306
canal.instance.master.journal.name =
canal.instance.master.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 = .\*\\\\..\*

# 启动
sh bin/startup.sh

一个简单的demo程序
参考自:https://github.com/alibaba/canal/blob/master/example/src/main/java/com/alibaba/otter/canal/example/SimpleCanalClientTest.java

0%