Linux安装Mysql主从集群(图文解说详细版)

news2024/11/24 3:20:53

MySQL主从集群是一种数据库架构模式,由一个主数据库(Master)和多个从数据库(Slave)组成。在主从集群中,主数据库负责处理写操作(如插入、更新、删除),而从数据库则用于读操作。

主数据库是集群的核心,它接收来自客户端的所有写操作,并将这些操作记录到二进制日志(Binary Log)。从数据库通过连接到主数据库,并从主数据库的二进制日志中复制数据变更,以保持与主数据库的数据一致性。

💪主从集群的优势有两个方面:

  1. 高可用性:当主数据库发生故障时,可以快速切换到其中一个从数据库作为新的主数据库,从而确保系统的持续可用性。
  2. 数据冗余和读扩展:从数据库可以用于处理读操作,从而减轻主数据库的读负载。此外,通过将数据复制到多个从数据库,可以增加数据的冗余性,提高系统的可靠性。

💪在设置主从集群时,需要注意以下几点:

  1. 确保网络连接的稳定性和延迟较低,以保证主数据库和从数据库之间的数据同步效果。
  2. 配置正确的复制参数,包括复制用户权限、二进制日志格式等,以确保数据正确地从主数据库复制到从数据库。
  3. 定期监控主从数据库的状态,确保复制过程正常进行,并及时处理异常情况。

MySQL主从集群是一种常用的数据库架构模式,适用于高可用性和数据冗余要求较高的环境。通过合理配置和管理,可以有效提升数据库系统的性能和可靠性。

上次我们讲了Linux中Mysql的安装:
Linux安装Mysql(图文解说详细版,安装包tar包版)

文章目录

    • 💪第一步,安装mysql服务
    • 💪第二步,配置主机环境
    • 💪第三步,给主机分配对从机的权限
    • 💪第四步,配置从机环境
    • 💪第五步,在从机配置主机地址
    • 💪第六步,启动从机
    • 💪第七步,验证集群
      • 💪情况一:新增数据库
      • 💪情况二:添加数据表
    • 💪拓展:
      • 💪第一步,编辑`my.cnf`文件,加个skip-grant-tables(登录时跳过权限检查)
      • 💪第二步,重启mysql
      • 💪第三步,登录mysql
      • 💪第四步,修改密码
      • 💪第五步,开启远程访问

这次我们搭建一主双从的集群,需要准备以下三台Linux服务器

ip端口角色
192.168.75.1283306
192.168.75.1293306
192.168.75.1303306

💪第一步,安装mysql服务

原来博主写过安装mysql的文章,这里不在赘述:

标题地址
Linux安装Mysql(图文解说详细版,安装包tar包版)https://blog.csdn.net/csdnerM/article/details/128202916
Linux安装Mysql(图文解说详细版,yum版本)https://masiyi.blog.csdn.net/article/details/121095527
Windows安装Mysql(图文解说详细版,无msi版本)https://masiyi.blog.csdn.net/article/details/127004660
Mac安装Mysql(图文解说详细版)https://masiyi.blog.csdn.net/article/details/124326946

💪第二步,配置主机环境

这篇教程,是依据上面表格中的tar包安装,所以也是基于tar包去讲,请大家在能连到三台服务器的mysql之后才阅读该文章

在这里插入图片描述

为了避免服务器之间通不了信,所以我们需要关闭三台服务器的防火墙

service firewalld stop

找到etc/my.cnf文件,没有的话就新建一个etc/my.cnf

#[必须]主服务器唯一ID
server-id=1
##[必须]启用二进制日志,指名路径。比如:自己本地的路径/log/mysqlbin
log-bin=masiyi-bin

加入以下配置

在这里插入图片描述

之后重启数据库:

在这里插入图片描述

注意看图里面的操作

💪第三步,给主机分配对从机的权限

#在主机MySQL里执行授权主从复制的命令
GRANT REPLICATION SLAVE ON *.* TO 'slave1'@'从机器数据库IP' IDENTIFIED BY '123456.com';

这条命令是用于将复制权限授予名为 “slave1” 的从机器数据库,并且将允许从机器使用用户名为 “slave1”,密码为 “123456.com” 连接到主服务器。

例如本安装环境则执行:

GRANT REPLICATION SLAVE ON *.* TO 'slave1'@'192.168.75.128' IDENTIFIED BY '123456.com';
GRANT REPLICATION SLAVE ON *.* TO 'slave2'@'192.168.75.130' IDENTIFIED BY '123456.com';

在这里插入图片描述

执行好之后查看主机的配置信息:

show master status;

在这里插入图片描述

记住File属性和Position属性,这个我们待会会用到

  • File: 当前正在操作的binlog文件的名称为"masiyi-bin.000001"。
  • Position: 表示读取该binlog文件时的位置,当前位置为750。这个位置可以用来恢复或回放特定的数据库操作。

💪第四步,配置从机环境

同样的找到etc/my.cnf

第一部从机:128

在这里插入图片描述

添加

#[必须]从服务器唯一ID
server-id=2

第二部从机:130

在这里插入图片描述

#[必须]从服务器唯一ID
server-id=3

💪第五步,在从机配置主机地址

CHANGE MASTER TO 
MASTER_HOST='主机的IP地址',
MASTER_USER='主机用户名',
MASTER_PASSWORD='主机用户名的密码',
MASTER_LOG_FILE='mysql-bin.具体数字',
MASTER_LOG_POS=具体值;

在本环境中命令如下:

130机器:

CHANGE MASTER TO MASTER_HOST='192.168.75.129',MASTER_USER='slave2',MASTER_PASSWORD='123456.com',MASTER_LOG_FILE='masiyi-bin.000001',MASTER_LOG_POS=750;

在这里插入图片描述

128机器:

CHANGE MASTER TO MASTER_HOST='192.168.75.129',MASTER_USER='slave1',MASTER_PASSWORD='123456.com',MASTER_LOG_FILE='masiyi-bin.000001',MASTER_LOG_POS=750;

在这里插入图片描述

💪第六步,启动从机

128和130都要执行

#启动slave同步
START SLAVE;

在这里插入图片描述

执行成功之后查看从机状态

 SHOW SLAVE STATUS;

在这里插入图片描述

如上图所示则为启动成功

💪第七步,验证集群

💪情况一:新增数据库

主机情况:

在这里插入图片描述

从机情况:

在这里插入图片描述

create database test_mysql1;

主机成功添加

在这里插入图片描述

从机130成功同步:

在这里插入图片描述

💪情况二:添加数据表

CREATE TABLE `test` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `age` int(11) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8;

在这里插入图片描述

从机128成功同步

在这里插入图片描述

其他的情况这里就不一一列举了

💪拓展:

在安装过程中初始话时mysql的默认密码用不了

💪第一步,编辑my.cnf文件,加个skip-grant-tables(登录时跳过权限检查)

在这里插入图片描述

💪第二步,重启mysql

[root@localhost bin]# sh ../support-files/mysql.server restart

💪第三步,登录mysql

进入bin文件夹直接运行./mysql就直接进来了

在这里插入图片描述

💪第四步,修改密码

先刷新权限,才能修改密码

flush privileges;

在这里插入图片描述

ALTER USER 'root'@'localhost' IDENTIFIED BY '123456.com';

💪第五步,开启远程访问

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'IDENTIFIED BY '123456.com' WITH GRANT OPTION;
flush privileges;

在这里插入图片描述

通过本篇博客,我们详细介绍了Linux系统下安装MySQL主从集群的过程,并提供了图文解说,希望能给读者带来实用的指导。

在本文中,我们首先介绍了MySQL主从集群的概念和优势,了解了它如何提供高可用性和数据冗余的解决方案。接着,我们逐步演示了安装和配置主从集群的关键步骤,包括设置主库、创建复制用户、配置从库等。每个步骤都配有详细说明和相关截图,以便读者更好地理解和实践。

通过搭建MySQL主从集群,您可以实现数据的高可用性和读写分离,提升数据库系统的性能和稳定性。此外,博主还提供了一些拓展知识,帮助您更好地应对实际环境中可能遇到的挑战。

希望本篇博客能为读者提供清晰的指导,能够成功在Linux系统上安装MySQL主从集群。如果您有任何疑问或需要进一步的帮助,请随时提问。感谢阅读!

在这里插入图片描述

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

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

相关文章

蓝桥杯每日一题2023.9.23

4961. 整数删除 - AcWing题库 题目描述 分析 注:如果要进行大量的删除操作可以使用链表 动态求最小值使用堆,每次从堆中取出最小值的下标然后在链表中删除 注意long long 代码解释: while(k --){auto t q.top();q.pop();res t.first;i…

【二分图染色】ARC 165 C

C - Social Distance on Graph 题意&#xff1a; 思路&#xff1a; 首先考虑一条链的情况&#xff0c;注意到如果两条相邻的边加起来 < x&#xff0c;一定不行 这个结论推广到图也是一样的 同时注意到 x 具有单调性&#xff0c;考虑对 x 二分 在check时进行二分图染色 …

Linux知识点 -- 网络基础 -- 传输层

Linux知识点 – 网络基础 – 传输层 文章目录 Linux知识点 -- 网络基础 -- 传输层一、传输层协议1.端口号2.网络相关bash命令 二、UDP协议1.UDP报文的解包与交付2.理解UDP报文3.UDP协议的特点4.UDP应用层IO类接口5.UDP的缓冲区6.UDP使用注意事项7.基于UDP的应用层协议 三、TCP协…

SpringMVC 学习(二)Hello SpringMVC

3. Hello SpringMVC (1) 新建 maven 模块 springmvc-02-hellomvc (2) 确认依赖的导入 (3) 配置 web.xml <!--web/WEB-INF/web.xml--> <?xml version"1.0" encoding"UTF-8"?> <web-app xmlns"http://xmlns.jcp.org/xml/ns/javaee…

简述信息论与采样定理

信息论 香农信息论发表于1948/1949年&#xff0c;它由三部分组成&#xff1a;信号采样、信源编码、信道编码&#xff1b; 信号采样&#xff1a;采样理论研究在何种条件下对连续信号进行采样&#xff0c;从而得到的离散型号可以可逆地恢复出采样前的连续信号。采样得到的离散实…

网络安全--防火墙旁挂部署方式和高可靠性技术

目录 一、防火墙 二、防火墙旁挂部署方式 使用策略路由实现 第一步、IP地址配置 第二步、配置路由 第三步、在防火墙上做策略 第四步、在R2上使用策略路由引流 三、防火墙高可靠性技术--HRP 拓扑图 第一步、配置SW1、SW2、FW1、FW2 第二步、进入防火墙Web页面进行配…

分布式网络在移动医疗场景中的应用

随着医疗信息化建设实践的深入&#xff0c;越来越多的医疗机构开始借助网络信息技术改善其运营及管理模式&#xff0c;为患者提供更高质量、更高效率、更加安全体贴的医疗服务。移动医疗便是在此背景下产生的新业务需求。 常见的移动医疗场景 住院部&#xff1a;移动查房、智…

【好文推荐】openGauss 5.0.0 数据库安全——全密态探究

前言 写此文章的目的&#xff0c;主要是验证&#xff1a; openGauss 5.0.0 数据库能够实现哪种加密方式的全密态全密态数据库的特点 一、全密态介绍 全密态数据库意在解决数据全生命周期的隐私保护问题&#xff0c;使得系统无论在何种业务场景和环境下&#xff0c;数据在传…

Spring面试题23:Spring支持哪些事务管理类型?Spring框架的事务管理有哪些优点?你更倾向用哪种事务管理类型?

该文章专注于面试,面试只要回答关键点即可,不需要对框架有非常深入的回答,如果你想应付面试,是足够了,抓住关键点 面试官:Spring支持哪些事务管理类型? Spring 支持以下几种事务管理类型: 编程式事务管理:通过在代码中显式地使用事务管理 API(如 TransactionTempla…

AMEYA360:瑞萨电子整合Reality AI工具与e² studio IDE,扩大其在AIoT领域的卓越地位

全球半导体解决方案供应商瑞萨电21日宣布已在其Reality AI Tools?和e2 studio集成开发环境间建立接口&#xff0c;使设计人员能够在两个程序间无缝共享数据、项目及AI代码模块。实时数据处理模块已集成至瑞萨MCU软件开发工具套件&#xff08;注&#xff09;&#xff0c;以方便…

腾讯mini项目-【指标监控服务重构】2023-08-26

今日已办 Venus 的 Trace 无感化 定义 handler 函数 fiber.Handler 的主要处理逻辑返回处理中出现的 error返回处理中响应 json 的函数 // handler // Description: // Author xzx 2023-08-26 18:00:03 // Param c // Return error // Return func() error : function for …

【Redis】记录一次K8S存储故障导致Redis集群拓扑异常的修复过程

文章目录 背景处理新节点遗忘旧节点 背景 集群部署在K8S环境内&#xff0c;存储使用的localpv&#xff0c;有一台K8S主机节点磁盘故障&#xff0c;导致在该节点上的redis节点均出现故障&#xff0c;主要表现为持久化失败、集群拓扑异常&#xff0c;持久化失败可以临时关闭RDB和…

Python:pyts库中的GramianAngularField

您想要使用pyts库中的GramianAngularField类&#xff0c;这是一个用于时间序列数据图像转换的工具。要使用这个类&#xff0c;首先确保您已经安装了pyts库。如果尚未安装&#xff0c;您可以使用以下命令来安装它&#xff1a; pip install pyts一旦安装完成&#xff0c;您可以通…

sql分词查询,实现类似ES的效果

需求&#xff1a;希望通过缩写查询到全称&#xff0c;列如输入常州一院&#xff0c;要得到常州市第一人民医院。 1、创建全文索引 # 创建全文索引 create FULLTEXT INDEX ft_hospitalname ON hospital_information(hospitalname) with parser ngram;2、编写查询sql # 自然语…

计算机专业毕业设计项目推荐09-个人医疗系统(Spring+Js+Mysql)

个人医疗系统&#xff08;SpringJsMysql&#xff09; **介绍****系统总体开发情况-功能模块****各部分模块实现** 介绍 本系列(后期可能博主会统一为专栏)博文献给即将毕业的计算机专业同学们,因为博主自身本科和硕士也是科班出生,所以也比较了解计算机专业的毕业设计流程以及…

【python】pycharm导入anaconda环境

参考 Pycharm导入anaconda环境的教程图解 - 知乎 (zhihu.com)

el-table实现穿梭功能

第一种 <template><el-row :gutter"20"><el-col :span"10"><!-- 搜索 --><div class"search-bg"><YcSearchInput title"手机号" v-model"search.phone" /><div class"search-s…

【算法训练-动态规划】一 连续子数组的最大和

废话不多说&#xff0c;喊一句号子鼓励自己&#xff1a;程序员永不失业&#xff0c;程序员走向架构&#xff01;本篇Blog的主题是【动态规划】&#xff0c;使用【数组】这个基本的数据结构来实现&#xff0c;这个高频题的站点是&#xff1a;CodeTop&#xff0c;筛选条件为&…

代数——第2章——群

第 2 章 群(Groups) II est peu de notions en mathematiques qui soient plus primitives que celle de loi de composition. (数学中很少有比合成律更原始的概念了。) --------------------------------------------------------Nicolas Bourbaki 2.1 合成律(LAWS OF CO…

Python中的封装

迷途小书童 读完需要 3分钟 速读仅需 1 分钟 当我们谈到 Python 中的封装时&#xff0c;可以将其类比为一个礼物盒子。封装是面向对象编程的一个重要概念&#xff0c;它允许我们将数据和相关的方法包装在一个单独的单元中&#xff0c;就像将礼物放在一个盒子里一样。 在 Python…