当前位置: 首页 > news >正文

Day84(10)-F:\硕士阶段\Java\课程资料\7、Redis入门到实战教程\Redis-笔记资料\03-高级篇\资料\item-service-多级缓存

安装和配置Canal

下面我们就开启mysql的主从同步机制,让Canal来模拟salve

1.开启MySQL主从

Canal是基于MySQL的主从同步功能,因此必须先开启MySQL的主从功能才可以。

这里以之前用Docker运行的mysql为例:

1.1.开启binlog

打开mysql容器挂载的日志文件,我的在/tmp/mysql/conf目录:

image-20210813153241537

修改文件:

vi /tmp/mysql/conf/my.cnf

添加内容:

log-bin=/var/lib/mysql/mysql-bin
binlog-do-db=heima

配置解读:

  • log-bin=/var/lib/mysql/mysql-bin:设置binary log文件的存放地址和文件名,叫做mysql-bin
  • binlog-do-db=heima:指定对哪个database记录binary log events,这里记录heima这个库

最终效果:

[mysqld]
skip-name-resolve
character_set_server=utf8
datadir=/var/lib/mysql
server-id=1000
log-bin=/var/lib/mysql/mysql-bin
binlog-do-db=heima

1.2.设置用户权限

接下来添加一个仅用于数据同步的账户,出于安全考虑,这里仅提供对heima这个库的操作权限。

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

重启mysql容器即可

docker restart mysql

测试设置是否成功:在mysql控制台,或者Navicat中,输入命令:

show master status;

image-20200327094735948

2.安装Canal

2.1.创建网络

我们需要创建一个网络,将MySQL、Canal、MQ放到同一个Docker网络中:

docker network create heima

让mysql加入这个网络:

docker network connect heima mysql

2.3.安装Canal

课前资料中提供了canal的镜像压缩包:

image-20210813161804292

大家可以上传到虚拟机,然后通过命令导入:

docker load -i canal.tar

然后运行命令创建Canal容器:

docker run -p 11111:11111 --name canal \
-e canal.destinations=heima \
-e canal.instance.master.address=mysql:3306  \
-e canal.instance.dbUsername=canal  \
-e canal.instance.dbPassword=canal  \
-e canal.instance.connectionCharset=UTF-8 \
-e canal.instance.tsdb.enable=true \
-e canal.instance.gtidon=false  \
-e canal.instance.filter.regex=heima\\..* \
--network heima \
-d canal/canal-server:v1.1.5

说明:

  • -p 11111:11111:这是canal的默认监听端口
  • -e canal.instance.master.address=mysql:3306:数据库地址和端口,如果不知道mysql容器地址,可以通过docker inspect 容器id来查看
  • -e canal.instance.dbUsername=canal:数据库用户名
  • -e canal.instance.dbPassword=canal :数据库密码
  • -e canal.instance.filter.regex=:要监听的表名称

表名称监听支持的语法:

mysql 数据解析关注的表,Perl正则表达式.
多个正则之间以逗号(,)分隔,转义符需要双斜杠(\\) 
常见例子:
1.  所有表:.*   or  .*\\..*
2.  canal schema下所有表: canal\\..*
3.  canal下的以canal打头的表:canal\\.canal.*
4.  canal schema下的一张表:canal.test1
5.  多个规则组合使用然后以逗号隔开:canal\\..*,mysql.test1,mysql.test2 
http://www.jsqmd.com/news/263813/

相关文章:

  • 【LeetCode热题100】Java详解:二叉搜索树中第K小的元素(含进阶优化与面试延伸)
  • 如何提高图像识别的准确率?
  • 数据结构入门:时间复杂度与排序和查找 - 详解
  • STM32单片机16*16汉字点阵广告牌75(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码
  • Python+django的旅游景点交通酒店预订网的设计与实现
  • Meta 收购 Manus:AI 智能体由对话转向执行的转折点
  • 【时频分析】基于matlab面向相交群延迟多分量信号的时频重分配同步挤压频域线性调频小波变换【含Matlab源码 14985期】复现含文献
  • 如何通过数据分析实现精准产品定位
  • day141—递归—二叉树的最大深度(LeetCode-104)
  • Python+django的数字化高校宿舍报修出入登记调换宿舍管理系统的实现
  • STM32-270-多功能水质监测系统(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码
  • STM32智能家居光照温度可燃气检测系统32-907(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码
  • 基于图像模糊度统计和盲卷积滤波的图像去模糊算法matlab仿真
  • Python+django的同城社区篮球队管理系统 体育运动篮球赛事预约系统
  • Python+django的图书资料借阅信息管理系统的设计与实现
  • HTML打包EXE工具2.2.0版本重磅更新 - 2026年最新版本稳定性大幅提升
  • STM32-S273-对讲机频道可设+语音通话+一对多+状态显示+铃音提醒+按键设置+OLED屏+声光提醒(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码
  • 基于深度学习的PCB板元器件检测系统演示与介绍(YOLOv12/v11/v8/v5模型+Pyqt5界面+训练代码+数据集)
  • 51单片机心率计脉搏测量仪表体温检测73(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码
  • 【数字信号调制】基于matlab AWGN信道BPSK和QPSK仿真(含BER分析)【含Matlab源码 14987期】含报告
  • 未命名鲜花
  • 竞业协议
  • 芯谷科技—D9420A:高性能同步降压稳压器,助力高效电源设计 - 实践
  • Python+django的果蔬销售平台
  • 寒假学习笔记1.16
  • 868685
  • 技術演講的光環:台上講得精彩,台下代碼一團糟
  • 基于yolo26的番茄成熟度识别 西红柿成熟度检测数据集 农产品品质分级自动化算法 农业生产中果实成熟度批量检测 深度学习图像分割第10412期
  • 基于YOLOv8的建筑物管道渗漏智能识别系统 混凝土墙体渗透检测识别数据集 红外墙体渗漏识别数据集 红外管道漏水识别第10411期
  • CompletableFuture处理超时