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....