Canal是阿里提供的一个针对MySQL数据库的增量日志解析,提供增量数据订阅和消费的框架(组件)。mysql
1.配置MySQL的配置文件(my.ini),增长以下配置:spring
[mysqld] log-bin=mysql-bin #开启日志监控 binlog-format=ROW #监控模式为ROW server_id=1 #配置mysql replaction须要定义,不能和canal的slaveId重复
2.链接到数据库,执行以下语句:sql
[mysqld] CREATE USER canal IDENTIFIED BY 'canal'; GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'canal'@'%'; -- GRANT ALL PRIVILEGES ON *.* TO 'canal'@'%' ; FLUSH PRIVILEGES;
备注:Canal的原理是模拟本身为MySQL Slave,因此这里必定须要作为MySQL Slave的相关权限。3.配置Canal的配置文件(conf/example/instance.properties),增长以下配置:数据库
#数据库配置 canal.instance.master.address = 127.0.0.1:3306 canal.instance.master.journal.name = canal.instance.master.position = canal.instance.master.timestamp = #主数据库 canal.instance.dbUsername = canal #账号 canal.instance.dbPassword = canal #密码 canal.instance.defaultDatabaseName = #监听的数据库名称 canal.instance.connectionCharset = UTF-8 #字符集 #备份数据库(能够不配置) #canal.instance.standby.address = #canal.instance.standby.journal.name = #canal.instance.standby.position = #canal.instance.standby.timestamp =
4.执行启动文件(bin/startup.bat 或者 bin/startup.sh)。bash
5.检查日志:
logs/canal/canal.log框架
com.alibaba.otter.canal.deployer.CanalLauncher - ## start the canal server. com.alibaba.otter.canal.deployer.CanalController - ## start the canal server[127.0.0.1:11111] com.alibaba.otter.canal.deployer.CanalLauncher - ## the canal server is running now ......
logs/example/example.log日志
c.a.o.c.i.spring.support.PropertyPlaceholderConfigurer - Loading properties file from class path resource [canal.properties] c.a.o.c.i.spring.support.PropertyPlaceholderConfigurer - Loading properties file from class path resource [example/instance.properties] c.a.otter.canal.instance.spring.CanalInstanceWithSpring - start CannalInstance for 1-example c.a.otter.canal.instance.spring.CanalInstanceWithSpring - start successful....