log-bin=mysql-bin # 開啟 binlog
binlog-format=ROW # 選擇 ROW 模式
server_id=1 # 配置 MySQL replaction 需要定義,不要和 canal 的 slaveId 重複
授權 canal 連結 MySQL 賬号具有作為 MySQL slave 的權限, 如果已有賬戶可直接 grant
CREATE USER canal IDENTIFIED BY 'canal';
GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'canal'@'%';
-- GRANT ALL PRIVILEGES ON *.* TO 'canal'@'%' ;
FLUSH PRIVILEGES;
wget https://github.com/alibaba/canal/releases/download/canal-1.1.5/canal.deployer-1.1.5.tar.gz
mkdir /data/soft/canal
tar zxvf canal.deployer-1.1.5.tar.gz -C /data/soft/canal
#更改配置檔案 /conf/example/instance.properties
canal.instance.master.address=127.0.0.1:3306
canal.instance.dbUsername=canal
canal.instance.dbPassword=canal
canal.instance.connectionCharset = UTF-8
#預設資料庫 暫時無用
canal.instance.defaultDatabaseName = liexin_canal
設定過濾條件(這裡隻需要liexin_canal庫裡面的所有表)
canal.instance.filter.regex=liexin_canal\\..*
為下面mq模式綁定mq建立好的routing key
canal.mq.topic=canal_ex_routing
mq模式
在rabbitmq頁面建立好exchange,Queues,并綁定好routing key,
exchange的Type:direct
更改/conf/canal.properties檔案
canal.serverMode = rabbitMQ
rabbitmq.host =192.168.1.237
rabbitmq.virtual.host =/
rabbitmq.exchange =交換器名
rabbitmq.username =huntadmin
rabbitmq.password =jy2y2900
rabbitmq.deliveryMode =2
啟動:
sh /data/canal/bin/startup.sh
停止:
sh /data/canal/bin/stop.sh
重新開機:
sh /data/canal/bin/restart.sh
用戶端解析的event_type:
1 : 新增
2 : 更新
3 : 删除