黑马Redis视频教程高级篇(安装Canal)

news/2024/11/30 9:46:36/

目录

1、开启MySQL主从

1.1、开启binlog

1.2、设置用户权限

2、安装Canal

2.1、创建网络

2.3、安装Canal


1、开启MySQL主从

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

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

1.1、开启binlog

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

修改文件:

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;

2、安装Canal

2.1、创建网络

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

docker network create heima

让mysql加入这个网络:

docker network connect heima mysql

 

2.3、安装Canal

资源可以私信我管我要。

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

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.ppmy.cn/news/307512.html

相关文章

【Python】Python进阶系列教程-- Python3 SMTP发送邮件(六)

文章目录 前言实例使用Python发送HTML格式的邮件Python 发送带附件的邮件在 HTML 文本中添加图片使用第三方 SMTP 服务发送 前言 往期回顾: Python进阶系列教程-- Python3 正则表达式(一)Python进阶系列教程-- Python3 CGI编程(…

平板用的触控笔什么牌子好,电容笔哪个厂家的产品比较好

国内的电容笔在这两年快速发展起来,几乎有iPad的小伙伴们无论是在工作上还是学习上都是离不开电容笔,而现在市面上许多电容笔的品牌,许多第一次入手小伙伴怕踩到“坑”,也怕买到不适合自己,下面给大家总结了几款热销的…

平板用的触控笔什么牌子好,哪个牌子的电容笔好

随着智能化时代的发展,越来越多数码产品出现在人们的视野里。iPad作为大家日常不可缺少的数码产品,而Apple pencil作为iPad的周边,它在工作和学习上,给大家带了很多便利。受到广泛的小伙伴们喜欢。而官方的Apple pencil的价格让很…

青龙脚本(高佣联盟,附脚本)(已废)

脚本来自tg /* 蛋炒饭 软件名:高佣联盟(安卓苹果都可以) 种果树得红包,还可以兑换水果 活动入口:底部菜单栏-任务-每日签到-0元领水果 变量名:fdshck 进入农场后抓包https://saas.hixiaoman.com/开头的,cookie里面userId和consumerId的值用#链接&#xf…

c语言x i 4 j 16 k 32,若x、i、j和k都是int型变量,则计算下面表达式后,x的值为( ),x=(i=4,j=16,k=32)。 A.4 B.16 C.32 D.52_开卷宝...

已知A40;B30;C100;D50,逻辑“与”运算符为 and,“或”运算符为or,“非”运算符为not。围绕这些已 已知A40;B30;C100;D50,逻辑“与”运算符为 and,“或”运算符为or,“非”运算符为not。围绕这些已知条件回答…

C4.5 决策树算法对UCI wine数据集分类的实现(MATLAB)

1、功能实现与样本分析 在数据挖掘领域,可以利用相应的算法对数据集进行训练,即对样本的特征进行分析,从而归纳出相同类别的样本之间存在的内在特征联系,进一步对未知类别的样本进行预测,判断出该样本所属的类别。本文…

基于STC89C52的自动循迹小车项目

摘要:本文根据对目标金属物的非接触式探测定位和移动的具体要求,以STC89C52RC单片机为控制核心,结合驱动模块、三个电感模块(LDC1000电感数字传感器)、测速模块和显示模块,设计并实现了一种自动循迹小车。该…

22K开关工作原理

22 kHz信号实际上是一个调制在LNB电源上的连续脉冲信号,利用接收机与LNB的连接馈线来传送时。0/22 kHz脉冲中频开关最初并不是用于双LNB切换的,而是用于Ku波段双本振LNB(高频头)的两个高、低本振切换的。由于Ku波段的频率范围在10…