采用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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM