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/QuickStart1
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
23vi 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