栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

使用alibaba的canal遇到的一些问题

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使用alibaba的canal遇到的一些问题

1.canal原理
 a)canal模拟mysql slave的交互协议,伪装自己为mysql slave,向mysql master发送dump协议
 b)mysql master收到dump请求,将binary log推送给canal
 c)之后,canal解析binary log对象
2.canal的安装
 a)使用docker拉取canal的镜像

docker pull canal/canal-server:latest

. b)建立canal容器

docker run -p 11111:11111 -d --name=canal canal/canal-server:latest

. c)进入canal容器,修改canal.properties 和instance.properties(通过SecureFX修改)
  1)修改canal.properties

[root@localhost ~]# docker cp canal:/home/admin/canal-server/conf/canal.properties ./canal.properties
#修改完毕
[root@localhost ~]# docker cp canal.properties canal:/home/admin/canal-server/conf/canal.properties  


. 2)修改instance.properties

[root@localhost ~]# docker cp canal:/home/admin/canal-server/conf/example/instance.properties ./instance.properties  
#修改完毕
[root@localhost ~]# docker cp instance.properties canal:/home/admin/canal-server/conf/example/instance.properties


  注意:canal.instance.filter.regex=.*\..* 表示监听mysql的所有的数据库
3.mysql配置
 1)拉取mysql,并创建容器

docker run -d --name=mysql -p 33306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7
-p 代表端口映射,格式为  宿主机映射端口:容器运行端口
-e 代表添加环境变量  MYSQL_ROOT_PASSWORD是root用户的登陆密码
#进入mysql容器中
docker exec -it mysql /bin/bash
登录
mysql -u root -p
#创建账号,并授予权限(账号名称,密码与之前instance.properties一致)
create user canal@'%' IDENTIFIED by 'canal';
GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT,SUPER ON *.* TO 'canal'@'%';
FLUSH PRIVILEGES;
#mysql容器
docker restart mysql

2)修改mysqld.cnf(通过SecureFX修改)

[root@localhost ~]# docker cp mysql:/etc/mysql/mysql.conf.d/mysqld.cnf mysqld.cnf
#修改完毕
[root@localhost ~]# docker cp mysqld.cnf mysql:/etc/mysql/mysql.conf.d/mysqld.cnf 


4.到这里,基本配置完成了.还需要注意的是在使用canal时要关闭linux的防火墙.我就是在这里出了问题,也可以开放3306,11111端口

firewall-cmd --zone=public --add-port=80/tcp --permanent
#开放80端口
firewall-cmd --zone=public --remove-port=80/tcp --
permanent #关闭80端口
firewall-cmd --reload # 配置立即生效
firewall-cmd --list-ports 查看开启的所有端口
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/756740.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号