iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >如何使用Maxwell实时同步mysql数据
  • 937
分享到

如何使用Maxwell实时同步mysql数据

2024-04-02 19:04:59 937人浏览 泡泡鱼
摘要

目录Maxwell简介Maxwell的配置与使用1.下载Maxwell安装包2.配置Mysql,打开mysql binlog日志3.启动Maxwell,主要介绍数据写入RabbitM

Maxwell简介

maxwell是由java编写的守护进程,可以实时读取mysql binlog并将行更新以JSON格式写入kafka、rabbitMq、Redis等中,  这样有了mysql增量数据流,使用场景就很多了,比如:实时同步数据到缓存,同步数据到elasticsearch,数据迁移等等。

maxwell官网:Http://maxwells-daemon.io
 maxwell源代码:https://GitHub.com/zendesk/maxwell

Maxwell的配置与使用

maxwell 依赖java sdk,所以需要先配置jdk环境。

1.下载Maxwell安装包


root@xxx maxwell]# pwd
/usr/local/maxwell
[root@xxx maxwell]# wget https://github.com/zendesk/maxwell/releases/download/v1.19.5/maxwell-1.19.5.tar.gz
[root@xxx maxwell]# tar zxvf maxwell-1.19.5.tar.gz 
[root@xxx maxwell]# cd maxwell-1.19.5

2.配置mysql,打开mysql binlog日志


[root@xxx mysql]# vi /usr/local/mysql/my.cnf 

[mysqld]
log-bin=mysql-bin #添加这一行就
binlog-fORMat=ROW #选择row模式
server_id=1 #随机指定一个不能和其他集群中机器重名的字符串,如果只有一台机器,那就可以随便指定了

重启mysql服务,登陆mysql,查看binlog日志模式


mysql> show variables like '%log_bin%'
+---------------------------------+-------------------------------+
| Variable_name                   | Value                         |
+---------------------------------+-------------------------------+
| log_bin                         | ON                            |
| log_bin_basename                | /data/mysqldb/mysql-bin       |
| log_bin_index                   | /data/mysqldb/mysql-bin.index |
| log_bin_trust_function_creators | OFF                           |
| log_bin_use_v1_row_events       | OFF                           |
| sql_log_bin                     | ON                            |
+---------------------------------+-------------------------------+
6 rows in set (0.11 sec)

Maxwell需要在schema_database选项指定的数据库中存储状态的权限(默认库名称为maxwell),所以需要提前给权限:


#创建一个有同步数据的用户yhrepl
mysql> create user 'yhrepl'@'*' identified by 'scgaopan'; 
Query OK, 0 rows affected (0.10 sec)

#此用户yhrepl要有对需要同步的数据库表有操作权限
mysql> grant all privileges on test.* to 'yhrepl'@'%' identified by 'scgaopan'; 
Query OK, 0 rows affected (0.13 sec)

#给yhrepl有同步数据的权限
mysql> grant select,replication client,replication slave on *.* to 'yhrepl'@'%' identified by 'scgaopan';
Query OK, 0 rows affected (0.10 sec)
# Maxwell需要在schema_database选项指定的数据库中存储状态的权限(默认库名称为maxwell)
mysql> grant all privileges on maxwell.* to 'yhrepl'@'%' identified by 'scgaopan';
Query OK, 0 rows affected (0.09 sec)

3.启动Maxwell,主要介绍数据写入rabbitmq的实战:


[root@xxx maxwell-1.19.5]# vi /usr/local/maxwell/maxwell-1.19.5/config.properties
#日志级别
log_level=DEBUG

producer=rabbitmq
daemon=true

#监控的数据库, mysql用户必须拥有读取binlog权限和新建库表的权限
host=47.105.110.xxx
user=yhrepl
passWord=scgaopan

output_nulls=true
jdbc_options=autoReconnet=true

#监控数据库中的哪些表
filter=exclude: *.*,include: test.AA

#replica_server_id 和 client_id 唯一标示,用于集群部署
replica_server_id=64
client_id=test-id

#metrics_type=http
#metrics_slf4j_interval=60
#http_port=8111
#http_diagnostic=true # default false

#rabbitmq
rabbitmq_host=47.105.110.xxx
rabbitmq_port=5672
rabbitmq_user=guest
rabbitmq_pass=guest
rabbitmq_virtual_host=/
rabbitmq_exchange=maxwell
rabbitmq_exchange_type=topic
rabbitmq_exchange_durable=false
rabbitmq_exchange_autodelete=false
rabbitmq_routing_key_template=%db%.%table%
rabbitmq_message_persistent=false
rabbitmq_declare_exchange=true

启动Maxwell:


[root@xxx maxwell-1.19.5]# ./bin/maxwell
#可以后台启动
[root@xxx maxwell-1.19.5]# nohub ./bin/maxwell &

启动成功,此时会自动生成maxwell库,该库记录了maxwell同步的状态,最后一次同步的id等等信息,在主库失败或同步异常后,只要maxwell库存在,下次同步会根据最后一次同步的id。如果没有生成maxwell库或报错,可能config.properties中配置的mysql用户权限不够

rabbitmq的操作

rabbitmq的操作,启动maxwell后就有一个maxwell的exchage生成

但对应的queue和exchange和queue的绑定需要用户自己去实现

新建一个maxwell-test的queue:

把queue与exchange进行绑定:

注意,这里的Routing key 是区分大小写的

在数据库中修改一条记录,可以看到maxwell-test队列里面有一第记录了。

全量同步

使用maxwell-bootstrap命令


./bin/maxwell-bootstrap --database xhd --table xhd-sso --host 127.0.0.1 --user xiehd --password xiehd2018 --client_id maxwell_dev

同步xhd.xhd-sso表的所有数据,并指定client_id示maxwell_dev的maxwell执行同步

上一个命令先开着,然后再启动client_id=maxwell_dev的maxwell


./bin/maxwell --client_id maxwell_dev

等待执行完成即可

以上就是如何使用Maxwell实时同步mysql数据的详细内容,更多关于用Maxwell同步mysql数据的资料请关注编程网其它相关文章!

您可能感兴趣的文档:

--结束END--

本文标题: 如何使用Maxwell实时同步mysql数据

本文链接: https://www.lsjlt.com/news/123110.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何使用Maxwell实时同步mysql数据
    目录Maxwell简介Maxwell的配置与使用1.下载Maxwell安装包2.配置mysql,打开mysql binlog日志3.启动Maxwell,主要介绍数据写入rabbitm...
    99+
    2024-04-02
  • clickhouse实时同步MySQL数据
    两种方式         1、使用clickhouse表引擎,直接从MySQL中读取数据(针对表),如果业务需求不是很复杂,可以选择此方式,需要哪张表就配置哪张表,操作简单,数据实时同步;         2、使用clickhouse数据库...
    99+
    2023-09-02
    mysql clickhouse 数据库
  • canal使用说明:MySQL、Redis实时数据同步
    1. canal简介 canal是阿里开源的数据同步工具,基于bin log可以将数据库同步到其他各类数据库中,目标数据库支持mysql,postgresql,oracle,redis,MQ,ES等 ...
    99+
    2023-09-08
    mysql redis 数据库
  • MySQL到Oracle如何进行实时数据同步
    这篇文章将为大家详细讲解有关MySQL到Oracle如何进行实时数据同步,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。第一步:配置MySQL 连接点击 Tapdata Cloud 操作后台左...
    99+
    2023-06-26
  • MySQL 到Oracle 实时数据同步
    目录第一步:配置MySQL 连接第二步:配置 Oracle连接第四步:进行数据校验其他数据库的同步操作摘要:很多 DBA 同学经常会遇到要从一个数据库实时同步到另一个数据库的问题,同...
    99+
    2024-04-02
  • PostgreSQL实时数据同步如何实现
    在 PostgreSQL 中实现实时数据同步可以通过以下方式实现: 使用 PostgreSQL 的流复制功能:通过配置 Post...
    99+
    2024-04-02
  • MySQL 到 ClickHouse 实时数据同步实操
    摘要: 很多 DBA 同学经常会遇到要从一个数据库实时同步到另一个数据库的问题,同构数据还相对容易,遇上异构数据、表多、数据量大等情况就难以同步。我自己亲测了一种方式,可以非常方便地...
    99+
    2024-04-02
  • 如何使用 SeaTunnel 同步 MySQL 数据到 Hive
    第一步:环境准备 Java 8 或 11 并配置JAVA_HOME Git  Maven 第二步:下载SeaTunnel并安装连接器 下载地址:https://seatunnel.apache.org/download/...
    99+
    2023-09-24
    hive 大数据 hadoop
  • 如何实现MySQL数据库同步
    这篇文章主要介绍了如何实现MySQL数据库同步,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。MySQL 的数据同步,在 MySQL 官方网站...
    99+
    2024-04-02
  • mysql数据库同步如何实现
    MySQL数据库同步可以通过多种方式实现,以下是一些常用的方法: 使用主从复制:主从复制是MySQL自带的一种数据库同步方法,通...
    99+
    2024-04-09
    mysql
  • MySQL同步数据Replication如何实现
    今天小编给大家分享一下MySQL同步数据Replication如何实现的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。MySQ...
    99+
    2023-07-05
  • 使用flink1.17 实时同步数据(mysql到sqlserver 或 sqlserver 到sqlserver)
    ​ 介绍两种数据库用 flink1.17 做数据实时同步的操作。 第一种:mysql 同步到 sqlserver 第二种:sqlserver 同步到 sqlserver 步骤一,环境的准备 准备一台有...
    99+
    2023-10-21
    mysql sqlserver 数据库 flink
  • 使用Flink CDC将Mysql中的数据实时同步到ES
    前言 最近公司要搞搜索,需要把mysql中的数据同步到es中来进行搜索,由于公司已经搭建了flink集群,就打算用flink来做这个同步。本来以为很简单,跟着官网文档走就好了,结果没想到折腾了将近一周...
    99+
    2023-09-01
    mysql flink elasticsearch
  • 阿里云MySQL数据库实时同步
    在当今的信息时代,数据是企业的生命线,而数据库则是数据存储和管理的关键。如何保证数据库数据的安全、稳定和实时性,成为企业面临的重要问题。而阿里云的MySQL数据库实时同步服务,正好解决了这个问题。 一、问题提出随着企业的业务不断扩大,数据量...
    99+
    2023-10-29
    阿里 实时 数据库
  • 使用datax实现增量同步mysql数据库数据(定时任务)
    使用datax来做数据全量同步很简单,增量同步该怎样做呢,接下来就一起试试吧 下载datax(前提CentOS已安装jdk等运行环境),解压(路径自定),使用centos7自带的python执行datax.py,运行自检 wget http...
    99+
    2023-09-22
    python json 开发语言 数据库
  • 如何使用Python API实现实时数组同步?
    随着数据科学和人工智能的快速发展,实时数组同步成为了一个热门话题。Python是一种非常流行的编程语言,为了实现实时数组同步,我们可以使用Python API来完成任务。 在本文中,我们将介绍如何使用Python API来实现实时数组同步...
    99+
    2023-08-17
    api 数组 同步
  • canal如何实现mysql的数据同步
    这篇文章将为大家详细讲解有关canal如何实现mysql的数据同步,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。canal是什么?canal [kə'næl],译...
    99+
    2024-04-02
  • angularjs如何使用数据同步时机ng-model-options
    这篇文章将为大家详细讲解有关angularjs如何使用数据同步时机ng-model-options,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。#ng-model-opt...
    99+
    2024-04-02
  • 如何使用MongoDB开发一个实时数据同步功能
    如何使用MongoDB开发一个实时数据同步功能当今互联网时代,实时数据同步功能变得越来越重要。为了满足用户对即时性的需求,开发人员需要使用高效且可扩展的数据库来实现数据同步功能。MongoDB作为一个强大的分布式文档数据库,提供了一些特性和...
    99+
    2023-10-22
    实时数据 MongoDB 同步功能
  • 基于Flink CDC实时同步数据(MySQL到MySQL)
    一、环境 jdk8Flink 1.16.1(部署在远程服务器:192.168.137.99)Flink CDC 2.3.0MySQL 8.0(安装在本地:192.168.3.31) (安装部署过程略) 二、准备 准备三个数据库:flink_...
    99+
    2023-08-16
    mysql flink etl
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作