採用Canal監聽mysql數據庫變化

 1》docker中安裝mysql容器

開啓binlog模式

修改/etc/mysql/mysql.conf.d/mysqld.cnf 

docker exec -it mysql /bin/bash
cd /etc/mysql/mysql.conf.d
vi mysqld.cnf

添加這兩行

 2》創建用於同步的賬號並授權

採用root賬號登錄

mysql -uroot -p123456
create user canal@'%' IDENTIFIED by 'canal';
GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT,SUPER ON *.* TO 'canal'@'%';
FLUSH PRIVILEGES;

 

 3》重啓mysql容器

docker restart mysql

 

4》docker中安裝canal

docker pull docker.io/canal/canal-server

docker run -p 11111:11111 --name canal -d docker.io/canal/canal-server

docker exec -it canal /bin/bash
cd canal-server/conf/
vi canal.properties
cd example/
vi instance.properties
canal.properties的配置只要保證 canal.id 和master數據庫中的serverid不重複
instance.properties 
要配置master的地址 canal.instance.master.address
用於同步的賬號 canal.instance.dbUsername
用於同步的密碼 canal.instance.dbPassword
需要監聽哪些表的正則過濾 canal.instance.filter.regex
canal的實例名稱 canal.mq.topic
由於mysql主數據庫是用docker安裝的,這裏master的地址要填寫mysql容器的地址,先進入mysql容器,再查看ip就可以。

 

canal.instance.filter.regex = .*\\..*    表示所有的表

canal.mq.topic 配置的實例表示微服務中要監聽相同實例

docker update --restart=always canal
docker restart canal

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章