Canal監聽mysql
阿新 • • 發佈:2020-12-09
安裝mysql5.7,並開啟binlog
安裝mysql
開啟binlog
- find / -name my.cnf 找到這個檔案
- 新增幾行
[mysqld]
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;
- 重啟服務
- 輸入命令檢視,如下圖表示成功
docker安裝canal-admin
Canal的github wiki地址
這是一個管理頁面,用來管理canal叢集,新增例項,服務,更改配置等
docker pull canal/canal-admin:v1.1.4
docker run -d --name canal-admin -p 8089:8089 --restart=always canal/canal-admin:v1.1.4
-
修改配置
-
安裝完成後即可在瀏覽器檢視 http://127.0.0.1:8089,預設賬戶名
admin
密碼123456
canal叢集用一張圖表達
docker安裝canal-server
如果是canal叢集,則需要安裝
zookeeper
,這裡只是單機版
docker pull canal/canal-server:v1.1.4
docker run -d --name canal-server --restart=always -p 11111:11111 canal/canal-server:v1.1.4
-
修改canal-server的配置
-
密文獲取方式(記得去掉*)
mysql> select password('admin'); +-------------------------------------------+ | password('admin') | +-------------------------------------------+ | *4ACFE3202A5FF5CF467898FC58AAB1D615029441 | +-------------------------------------------+ 1 row in set, 1 warning (0.00 sec)
- 使用自帶的example測試功能
vi canal-server/conf/example/instance.properties
修改以下內容
# position info
canal.instance.master.address=mysql5.7:3306 # 這裡是你要監聽的資料庫
# username/password #你要監聽的資料庫中的賬號和密碼,如果沒有,自己去建立使用者
canal.instance.dbUsername=canal
canal.instance.dbPassword=canal
# table regex
canal.instance.filter.regex=.*\\..* # 正則表示式,表示監聽的哪個庫,哪個表,這裡是所有
# mq config
canal.mq.topic=example # 這裡取個名字,預設是example
去canal-admin頁面配置
- server管理-->新建server-->確定
注意:
經測試,V1.1.4版本admin不可以通過web-UI頁面配置建立instance,必須去canal-server裡把example資料夾cp一份,並修改裡面的配置