Docker部署Canal监听MySQL binlog

文章目录

  • 概念简述
    • binlog
    • Canal
  • MySQL配置
  • Canal配置
    • 创建挂载目录
    • 设置权限
    • 创建MySQl的Canal账户
    • 拉取镜像
    • 运行容器
      • 简单运行
      • 配置文件复制到宿主机
      • 修改配置文件
      • 删除之前运行的canal容器
      • 正式运行Canal容器
    • 查看运行状态
    • 排查问题

概念简述

binlog

MySQL的二进制日志binlog可以说是MySQL最重要的日志,它记录了所有的DDL和DML语句(除了数据查询语句select),以事件形式记录,还包含语句所执行的消耗的时间,MySQL的二进制日志是事务安全型的。

Canal

译意为水道/管道/沟渠,主要用途是基于 MySQL 数据库增量日志解析,提供增量数据订阅和消费
canal可以用来监控数据库数据的变化,从而获得新增数据,或者修改的数据。
canal的工作原理就是把自己伪装成MySQL slave,模拟MySQL slave的交互协议向MySQL Mater发送 dump协议,MySQL mater收到canal发送过来的dump请求,开始推送binary log给canal,然后canal解析binary log,再发送到存储目的地。

MySQL配置

首先docker中需要已安装mysql,且配置文件目录已挂载出来
打开宿主机挂载的mysql配置文件目录

vim my.conf

配置文件中添加以下配置,启用binlog

[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=canal

完成后保存退出
重启docker中的mysql

Canal配置

创建挂载目录

新建/opt/docker/canal/conf目录,稍后我们会放两个配置文件,并挂载
新建/opt/docker/canal/log目录,用于挂载日志文件

mkdir -p /opt/docker/canal/{conf,log}

设置权限

chmod -R 777 /opt/docker/canal/conf
chmod -R 777 /opt/docker/canal/log

创建MySQl的Canal账户

我这里在navicat中直接配置,用户名密码都是canal

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

在这里插入图片描述

拉取镜像

docker pull canal/canal-admin:v1.1.5

运行容器

简单运行

先简单运行一下,目的是为了获取其中的配置文件

docker run --name canal -d canal/canal-server:v1.1.5

配置文件复制到宿主机

将容器中的两个配置文件复制到我们创建好的conf目录中

docker cp canal:/home/admin/canal-server/conf/canal.properties /opt/docker/canal/conf
docker cp canal:/home/admin/canal-server/conf/example/instance.properties /opt/docker/canal/conf

修改配置文件

修改instance.properties配置文件
第一页长这样,这里我们就修改一下框中的部分,第一个是我们在mysql配置文件中设置的slaveId,下面的是数据库地址,IP:端口号
在这里插入图片描述
第二页长这样,同样只需要改框中的部分
在这里插入图片描述
上面的是我们之前为canal创建的账号和密码,均为canal
下面的是需要监听的库表,图中就是默认状态,监听全部,可根据实际需求改

删除之前运行的canal容器

暂停canal

docker stop canal

删除canal

docker rm canal

正式运行Canal容器

注意修改mysql地址

 docker run -d -it -h 127.0.0.1 -e server.port=8089 \-e canal.adminUser=admin -e canal.adminPasswd=admin \-e spring.datasource.address=mysql地址:3306  \-e spring.datasource.database= canal_manager  \-e spring.datasource.username= canal  \-e spring.datasource.password= canal  \--name=canal-admin -p 8089:8089 \-m 1024m canal/canal-admin:v1.1.5

查看运行状态

docker ps -a

在这里插入图片描述
成功

排查问题

进入到创建的挂载日志文件目录log,进入canal目录,里面有两个日志文件

在这里插入图片描述

运行遇到问题可查看这些日志排查问题


结束

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/131236.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

揭秘跑腿小程序开发中的5个关键技巧,让你的应用一炮而红

作为专注于跑腿小程序开发多年的领域专家,我深知在如今激烈的市场竞争中,如何打造一个引人注目且成功的跑腿小程序是至关重要的。在本文中,我将为大家揭秘跑腿小程序开发中的5个关键技巧,助你的应用一炮而红。无论你是一个初学者还…

【Fiddler】mac m1 机器上使用 fiddler 抓取接口

mac m1 机器上使用 fiddler 抓取接口(非虚拟机模式) author: jwensh date:2023.09.12 文章目录 mac m1 机器上使用 fiddler 抓取接口(非虚拟机模式)1. 环境准备2. 进行配置3. 使用情况 1. 环境准备 想要抓取 mac 上浏览器的接口&a…

快速傅里叶变换

引言 目标 傅里叶变化(Fourier transform)是一种信号处理技术,它可以将时间信号转换为频率信号,即将一组具有相同数量频率的正弦波叠加在一起,形成一组新的正弦波。如果我们把时间信号从频域转换到时域,那么…

酷开科技打造更好体验服务用户

智能电视以其海量资源、智慧大屏、高清画质等特点在国内快速普及。然而,随着用户量的增加、用户群体的需求多元化,导致消费者对智能电视的应用要求越来越高,不仅希望智能电视内容丰富,最好还能拥有“多合一”的功能。 好在&#…

【unity3D】TimeLine(详细图解)

💗 未来的游戏开发程序媛,现在的努力学习菜鸡 💦本专栏是我关于游戏开发的学习笔记 🈶本篇关于unity的TimeLine TimeLine 介绍打开TimeLine面板的方式创建TimeLine创建Track的两种方式Track的详解TimeLine的Track的分类Activation…

【送书活动】借助ChatGPT和Python,轻松实现办公自动化✨

前言 「作者主页」:雪碧有白泡泡 「个人网站」:雪碧的个人网站 「推荐专栏」: ★java一站式服务 ★ ★ React从入门到精通★ ★前端炫酷代码分享 ★ ★ 从0到英雄,vue成神之路★ ★ uniapp-从构建到提升★ ★ 从0到英雄&#xff…

tkintter四大按钮:Button,Checkbutton, Radiobutton, Menubutton

文章目录 四大按钮Button连击MenubuttonCheckbuttonRadiobutton tkinter系列: GUI初步💎布局💎绑定变量💎绑定事件💎消息框💎文件对话框控件样式扫雷小游戏💎强行表白神器 四大按钮 tkinter中…

总结987

考研倒计时102天 时间记录: 6:20起床 7:00~7:40早读,13年tex2 7:50~8:20实验室 8:30~8:34列日计划 8:40~11:18进步本回顾,记录 11:20~12:20计算机网络网课 2:10~3:05计网20道选择题 3:07~4:42政治1000题25道选择题纠错 …

第8章_freeRTOS入门与工程实践之内存管理

本教程基于韦东山百问网出的 DShanMCU-F103开发板 进行编写,需要的同学可以在这里获取: https://item.taobao.com/item.htm?id724601559592 配套资料获取:https://rtos.100ask.net/zh/freeRTOS/DShanMCU-F103 freeRTOS系列教程之freeRTOS入…

Redis优化 RDB AOF持久化

---------------------- Redis 高可用 ---------------------------------------- 在web服务器中,高可用是指服务器可以正常访问的时间,衡量的标准是在多长时间内可以提供正常服务(99.9%、99.99%、99.999%等等)。 但是在Redis语境…

Navicat连接openGauss数据库报错

错误信息:fe_sendauth:invalid authentication request from server:AUTH_REQ_SASL_CONT without AUTH_REQ_SASL 解决步骤: 1)关闭防火墙: 切换root用户执行:su - root 输入密码 systemctl status firewalld 查…

Ngnix封禁IP与ip段

Ngnix IP封禁以及实现自动封禁IP 小白教程,一看就会,一做就成。 1.创建文件(被封禁的ip写里面) 在ngnix的conf目录下创建一个blockip.conf文件,里面放需要封禁的IP与ip段,格式如下(deny是禁用…

微信小程序手写时间间隔组件,可设置间隔时间一分钟,半小时,一小时的间隔

纯手写时间间隔组件 需求:小程序中可以根据时间段进行选择开始时间和结束时间,如:当前时间是09:00, 则我可以从9点开始选择时间,每半个小时为间隔,那么下一个时间就算9:30&#xff…

【RocketMQ】消息的存储

当Broker收到生产者的消息发送请求时,会对请求进行处理,从请求中解析发送的消息数据,接下来以单个消息的接收为例,看一下消息的接收过程。 数据校验 封装消息 首先Broker会创建一个MessageExtBrokerInner对象封装从请求中解析到…

社区版IDEA导入Eclipse项目注意事项

经过正常导入教程之后。。。 有些jar包没有依赖导入,我这里直接把tomcat的lib全导入

【Spring Boot系列】- Spring Boot侦听器Listener

【Spring Boot系列】- Spring Boot侦听器Listener 文章目录 【Spring Boot系列】- Spring Boot侦听器Listener一、概述二、监听器Listener分类2.1 监听ServletContext的事件监听器2.2 监听HttpSeesion的事件监听器2.3 监听ServletRequest的事件监听器 三、SpringMVC中的监听器3…

骨传导耳机对人体有危险吗?会损害听力吗?

如果在使用骨传导耳机的时候控制好时间和音量,是不会对人体带来危险和造成伤害的。 下面跟大家解释一下为什么骨传导耳机对人体没有危害,最大的原因就是骨传导耳机不需要空气传导,而是通过颅骨传到听觉中枢,传输过程中几乎没有噪…

docker容器技术实战-2

03docker hub 首先注册上号: https://hub.docker.com/ 上传自己的镜像仓库 创建自己的仓库 webserver 拉取镜像 配置加速器 04搭建私有仓库 上传镜像 在主机1上 在主机2 上 激活内核选项 激活内核选项文件传输过去 配置使用非加密端口 05 docker私有仓库 仓库加…

langchain主要模块(二):数据连接

langchain2之数据连接 langchain1.概念2.主要模块模型输入/输出 (Model I/O)数据连接 (Data connection)链式组装 (Chains)代理 (Agents)内存 (Memory)回调 (Callbacks) 3.数据连接1.数据加载:2.文档分割:3.文档向量化:4.存储和检索向量数据:…

Webpack Sourcemap文件泄露漏洞

Webpack Sourcemap文件泄露漏洞 前言一、Webpack和Sourcemap1.1 什么是Webpack1.2 什么是Sourcemap 二、漏洞利用2.1 使用reverse-sourcemap工具2.1 直接看前端代码 三、漏洞挖掘漏洞修复 前言 Webpack主要是用于前端框架进行打包的工具,打包后形成.js.map文件&…