mariadb10.8 主主同步 相互复制

news2024/7/4 5:00:41

1. 配置说明

  • 操作系统:CentOS7

  • CPU指令集:x86_64

  • host1 主机:

    • 2 core 2G 40G
    • IP:192.168.0.98
  • host2 主机:

    • 2 core 2G 40G
    • IP:192.168.0.166

2. 数据库安装

见 MariaDB官方下载文档 https://mariadb.org/download

选择 CentOS 的 x86_64架构的 10.8 版本,源选择阿里云,如下:
在这里插入图片描述

创建repo

vi /etc/yum.repos.d/MariaDB.repo

贴入一下内容

# MariaDB 10.8 CentOS repository list - created 2022-11-17 02:48 UTC
# https://mariadb.org/download/
[mariadb]
name = MariaDB
baseurl = https://mirrors.aliyun.com/mariadb/yum/10.8/centos7-amd64
gpgkey=https://mirrors.aliyun.com/mariadb/yum/RPM-GPG-KEY-MariaDB
gpgcheck=1

安装数据库

sudo yum install -y MariaDB-server MariaDB-client

在这里插入图片描述

3. 启动并初始化

启动数据库

systemctl start mariadb

初始化数据库

mariadb-secure-installation

根据提示操作即可
在这里插入图片描述

4. 数据库 主主同步配置

配说明见官方文档 mariadb . Setting Up Replication

  • 若你的数据库中已经存在数据请在同步前将主库的数据通过 导出 mariadb-dump 并在另一台主机上导入,见 6 数据库手动同步。

  • 若您已经存在主机,那么请先配置从机

4.1 主机2 同步配置

编辑 /etc/my.conf配置文件加入以下内容

[mariadb]
log-bin
server_id=2
log-basename=master2
binlog-format=mixed

在这里插入图片描述
这里配置 server_id 为2,日志命名为master2这个名字可以是主机名也可自定义,该名字是biglog的文件的命名前缀。

重启数据库

systemctl restart mariadb

登录 host2的数据库,检查当前数据库主机状态,可以看到master2的biglog和位置。

show master status;

在这里插入图片描述
创建专用于数据库同步的用户replication_user,并授权SLAVE

CREATE USER 'replication_user'@'%' IDENTIFIED BY 'bigs3cret';
GRANT REPLICATION SLAVE ON *.* TO 'replication_user'@'%';

停止从机同步

STOP SLAVE;

在这里插入图片描述

4.2 主机1 同步配置

编辑 /etc/my.conf配置文件加入以下内容

[mariadb]
log-bin
server_id=1
log-basename=master1
binlog-format=mixed

在这里插入图片描述
这里配置 server_id 为1,日志命名为master1这个名字可以是主机名也可自定义,该名字是biglog的文件的命名前缀。

重启数据库

systemctl restart mariadb

登录 host1的数据库,检查当前数据库主机状态,可以看到master1的biglog和位置。

show master status;

在这里插入图片描述

登录 host1的数据库,创建专用于数据库同步的用户replication_user,并授权SLAVE

CREATE USER 'replication_user'@'%' IDENTIFIED BY 'bigs3cret';
GRANT REPLICATION SLAVE ON *.* TO 'replication_user'@'%';

停止从机同步

STOP SLAVE;

在这里插入图片描述

4.3 主机2 同步配置

host2从host1同步的数据,配置host1的IP和同步用户。

注意:当前处于Host2,需要配置Host1的IP和用户

CHANGE MASTER TO
  MASTER_HOST='192.168.0.98',
  MASTER_USER='replication_user',
  MASTER_PASSWORD='bigs3cret',
  MASTER_PORT=3306,
  MASTER_CONNECT_RETRY=10;

启用SLAVE复制

start slave;

在这里插入图片描述

查看复制情况

show slave status \G

在这里插入图片描述

到这里 主机2 从 主机1 的复制已经完成,接下来以同样的方式配置 主机1。

4.4 主机1 同步配置

host1从host2同步的数据,配置host2的IP和同步用户。

注意:当前处于Host1,需要配置Host2的IP和用户

CHANGE MASTER TO
  MASTER_HOST='192.168.0.166',
  MASTER_USER='replication_user',
  MASTER_PASSWORD='bigs3cret',
  MASTER_PORT=3306,
  MASTER_CONNECT_RETRY=10;

启用SLAVE复制

start slave;

在这里插入图片描述

查看复制情况

show slave status \G

在这里插入图片描述

到这里 主机1 从 主机2 的复制已经完成,两个数据库已经可以相互复制。

5. 验证

登录 host2 的数据库创建数据库

create database tmp_166;
show databases;

在这里插入图片描述

登录 host1 数据库可以看到数据库已经同步过来了。

在这里插入图片描述

6. [可选]数据库手动同步

注:该步骤为可选步骤请根据情况选择是否操作!!

数据库在同步前已经存在一些数据库以及用户的情况下,可以使用mariadb-dump实现数据库导出,然后手动导入,实现初始化的数据库同步,注意该操作需要在数据库同步配置操作前进行

首先到已经存在的数据库上运行

mariadb-dump -u root -p --all-databases > db.sql

在输入完登录口令后,将会把所有数据库都导出成SQL保存在 db.sql文件中,当然你也可以选择仅导出部分数据库,但是这样的话你需要在另外一个mariadb上创建同样的数据库,详见 官方文档 mariadb-dump/mysqldump 。

接下来我们到另一台需要同步的主机上执行导入命令:

mariadb -u root -p < db.sql     

参考文献

[1]. mariadb . Setting Up Replication . https://mariadb.com/kb/en/setting-up-replication/#replicating-from-mysql-master-to-mariadb-slave
[2]. mariadb . mariadb-dump/mysqldump . https://mariadb.com/kb/en/mariadb-dumpmysqldump/

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

mysql“数据不存在插入,存在则更新”实现

参考文章:Mysql:如果数据存在则更新&#xff0c;不存在则插入 场景 工作中有遇到需要配置一些指定的字段数据&#xff0c;但数据量大&#xff0c;不清楚之前是否有配置过&#xff0c;正确的思路应该是如果有这条数据了&#xff0c;那么更新数据的值&#xff0c;如果没有这条数…

股票行情接口level2的盘口信息和level1有哪些区别?

普通的行情接口软件会有价格曲线、五档盘口、分时成交等等这些行情数据&#xff0c;但是股票行情接口level2所能够提供的行情数据远远不止这些&#xff0c;level2顾名思义其实就是level1的高配版&#xff0c;那么它包含的数据相对于比普通行情接口的会更精细也更丰富&#xff0…

华为 x 香格里拉集团|品质网络守护数字旅程

作者 | 曾响铃 文 | 响铃说 酒店行业正在快速推动数字化&#xff0c;其目标是对内提升酒店管理效率&#xff0c;对外提升宾客入住体验&#xff1b;而网络作为整个数字化变革的联接底座&#xff0c;迫切需要进行升级和优化。以香格里拉集团为例&#xff0c;作为成立超过半个世…

微信怎么使用手机号码收款转账?

微信怎么使用手机号码收款&#xff1f; 1、微信手机号码收款方&#xff0c;打开微信钱包&#xff0c;并点击钱包进入&#xff1b; 2、在微信钱包找到支付设置&#xff0c;并点击进入支付设置&#xff1b; 3、在微信钱包支付设置内&#xff0c;开启允许通过手机号向我转账&…

力荐,京东首席架构师:亿级流量架构的核心技术文档免费分享

学习是一种基础性的能力。然而&#xff0c;“吾生也有涯&#xff0c;而知也无涯。”&#xff0c;如果学习不注意方法&#xff0c;则会“以有涯随无涯&#xff0c;殆矣”。 学习就像吃饭睡觉一样&#xff0c;是人的一种本能&#xff0c;人人都有学习的能力。我们在刚出生的时候…

大厂敲门砖,在阿里工作十年的朋友,总结出这份java面试必看手册

眼看着时间一天一天地过去&#xff0c;距离过年也就二个月的日子了&#xff0c;还有多少程序员是两眼摸黑不知道面试要做哪些准备的朋友&#xff1f; 还不知道进大厂需要复习哪些资料的朋友可以看过来&#xff0c;知道有些朋友会没什么准备跟无头苍蝇一样所以博主早在一个月前…

[附源码]计算机毕业设计JAVA镐京学院教务管理系统

[附源码]计算机毕业设计JAVA镐京学院教务管理系统 项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM my…

Python文件操作

文章目录文件操作打开文件关闭文件读文件写文件使用上下文管理器文件操作 打开文件 open函数 open函数的作用是打开一个文件&#xff0c;并返回打开的文件对象。该函数的常见调用方式如下&#xff1a; f open(file, mode, encoding)参数说明&#xff1a; file&#xff1a;待…

如何实现基于场景的接口自动化测试用例?

自动化本身是为了提高工作效率&#xff0c;不论选择何种框架&#xff0c;何种开发语言&#xff0c;我们最终想实现的效果&#xff0c;就是让大家用最少的代码&#xff0c;最小的投入&#xff0c;完成自动化测试的工作。 基于这个想法&#xff0c;我们的接口自动化测试思路如下…

Android App开发实战项目之大头贴App功能实现(附源码和演示 简单易上手)

需要图片集和源码请点赞关注收藏后评论区留言~~~ 一、需求描述 大头贴App有两个特征&#xff0c;第一个是头要大&#xff0c;拿来一张照片后把人像区域裁剪出来&#xff0c;这样新图片里的人头才会比较大&#xff0c;第二个是在周围贴上装饰物&#xff0c;而且装饰物还能随时更…

【Spring】——7、@Import注解给容器中快速导入一个组件

&#x1f4eb;作者简介&#xff1a;zhz小白 公众号&#xff1a;小白的Java进阶之路 专业技能&#xff1a; 1、Java基础&#xff0c;并精通多线程的开发&#xff0c;熟悉JVM原理 2、熟悉Java基础&#xff0c;并精通多线程的开发&#xff0c;熟悉JVM原理&#xff0c;具备⼀定的线…

Ubuntu下关于cuda和cudnn 报错 现象及解决方案

详细流程&#xff1a;1、现象2、探索&#xff08;可跳过&#xff09;3、完美解决&#xff08;真实原因&#xff09;3.1 查看当前cuda版本3.2电脑有多个cuda版本&#xff0c;通过改变软链接改变指向3.3 写入系统环境&#xff1a;1、现象 啊这,重启丢失了个啥触摸的驱动&#xff…

Java并发 - (并发基础)

Java并发 - (并发基础) 1、什么是共享资源 堆是被所有线程共享的一块内存区域。在虚拟机启动时创建。此内存区域的唯一目的就是存放对象实例 Java中几乎所有的对象实例都在这里分配内存。方法区与堆一样&#xff0c;也是各个线程共享的一块内存区域&#xff0c;它用于存储已被…

Linux实用操作-----快捷键的使用(收藏系列)

推荐教程&#xff1a;Linux零基础快速入门到精通 ctrl c 强制停止 •Linux某些程序的运行&#xff0c;如果想要强制停止它&#xff0c;可以使用快捷键ctrl c •命令输入错误&#xff0c;也可以通过快捷键ctrl c&#xff0c;退出当前输入&#xff0c;重新输入 ctrl d 退出…

注意论文投稿风险,现投期刊会不会成为预警期刊呢?

中科院发布《国际预警期刊名单》 2021年12月31日&#xff0c;中国科学院文献情报中心期刊分区表团队发布《国际期刊预警名单&#xff08;试行&#xff09;》&#xff0c;用以提醒科研人员审慎选择成果发表平台&#xff0c;提示出版机构强化期刊质量管理。截至目前&#xff0c;…

Vue 实现拖拽模块(二)自定义拖拽组件位置

上文介绍了 拖拽添加组件 的简单实现&#xff0c;本文将继续给大家分享如何自定义拖拽组件位置的简单实现&#xff0c;文中通过示例代码介绍&#xff0c;感兴趣的小伙伴们可以了解一下 本文主要介绍了 Vue自定义拖拽组件位置的简单实现&#xff0c;具体如下&#xff1a; 效果图…

高空抛物检测方案设计(使用SOM进行轨迹分类)

文章目录前言一、技术方案介绍1.方案设计图2.流程介绍3.说明二、实际检测1.摄像头的安装2.实际检测三、误报解决误报事件1&#xff1a;飞鸟误报事件2&#xff1a;树叶误报事件3&#xff1a;被子解决方案轨迹展示原始轨迹SOM分类结果总结前言 高空抛物检测的关键是方案的设计&a…

MATLAB 绘图合集:分类散点图gscatter

本文主要介绍如何依据数据类别同时呈现数据散点图。 目录 说明 例子 使用默认设置绘图 使用数据类别来画图 使用多组数据类别来画图 创建并调整散点图 说明 gscatter(x,y,g) 创建 和 的散点图x&#xff0c;y按 分组g。输入x和 y是相同大小的向量。 例子 gscatter(x,y,g,c…

Jekyll 语句语法、功能的实现方法和结构介绍小手册

本文很长&#xff0c;建议使用侧边栏进行跳转。 本文虽然按照由浅入深的顺序介绍了 Jekyll 的语句语法和功能结构&#xff0c;但是主要用于快速查询一些 Jekyll 语句、功能的实现方法和结构介绍。 如果你想&#xff1a; 了解查看一些常用的 Jekyll 的相关命令和选项还请查看&…

第六章第一节:图的基本概念和存储及基本操作

文章目录1. 图的基本概念1.1 图逻辑结构的应用1.2 无向图&#xff0c;有向图1.3 简单图&#xff0c;多重图1.4 顶点的度&#xff0c;入度和出度1.5 顶点和顶点的关系描述1.6 连通图&#xff0c;强连通图1.7 研究图的局部——子图1.8 生成树1.9 生成森林1.10 边的权&#xff0c;…