Canal监听mysql

安装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一份,并修改里面的配置

posted @ 2020-12-09 15:19  rm-rf*  阅读(528)  评论(0编辑  收藏  举报