Linux中Mysql5.7主从架构(一主多从)配置教程
🏡作者主页:点击!
🐧Linux基础知识(初学):点击!
🐧Linux高级管理防护和群集专栏:点击!
🔐Linux中firewalld防火墙:点击!
⏰️创作时间:2024年7月24日14点10分
🀄️文章质量:93分
目录
1.所有节点配置
建立时间同步环境
主节点
从节点
2.MySQL数据库安装
3.配置传统复制的单主复制
主服务器 (master1)
从服务器 (master2)
4.测试主从同步
1.所有节点配置
-
配置IP地址、网关、DNS、主机名称
通过适当的配置文件或命令设置网络相关信息,确保所有节点能正确互联互通。 -
停止并禁用防火墙
setenforce 0 systemctl stop firewalld systemctl disable firewalld
这些命令用于关闭SELinux和防火墙,防止它们阻碍节点之间的通信。
-
下载所需组件
yum groupinstall -y 'Development Tools' yum install -y lrzsz
安装开发工具和文件传输工具,确保系统具备必要的开发和传输环境。
建立时间同步环境
主节点
-
安装NTP
yum -y install ntp
安装NTP服务以确保时间同步。
-
配置NTP
vim /etc/ntp.conf
添加如下两行:
server 127.127.1.0 fudge 127.127.1.0 stratum 8
配置NTP服务以使用本地时间作为参考。
-
重启服务并设置为开机自动启动
systemctl restart ntpd systemctl enable ntpd
重启NTP服务并设置为开机自启动,以确保时间同步服务持续运行。
从节点
-
安装ntpdate
yum install -y ntpdate
安装ntpdate工具,用于手动同步时间。
-
同步时间
ntpdate NTP服务器IP
使用NTP服务器IP同步时间。例如:
ntpdate 192.168.192.100
2.MySQL数据库安装
-
下载MySQL 5.7.29安装包
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.29-1.el7.x86_64.rpm-bundle.tar
从官方源下载MySQL安装包。
-
解压并创建MySQL yum仓库
mkdir /mysql57 tar xf mysql-5.7.29-1.el7.x86_64.rpm-bundle.tar -C /mysql57 createrepo /mysql57
解压安装包并创建本地YUM仓库。
-
配置yum仓库
cat >> /etc/yum.repos.d/CentOS-mysql57.repo <<EOF [mysql57] name=mysql57 enabled=1 gpgcheck=0 baseurl=file:///mysql57 EOF
配置本地yum仓库以便后续安装。
-
刷新yum并安装MySQL服务器
yum clean all yum install -y mysql-server
安装MySQL服务器。
-
启动并更改默认管理密码
systemctl start mysqld grep "password" /var/log/mysqld.log //获取默认密码 mysqladmin -uroot -p password "Abc-1234" //使用默认密码改密码
启动MySQL服务并更改默认root用户的密码。
3.配置传统复制的单主复制
主服务器 (master1)
-
编辑MySQL配置文件
vim /etc/my.cnf
添加以下内容:
[mysqld] server-id = 100 log_bin = mysql-bin
设置服务器ID和启用二进制日志。
-
重启MySQL服务
systemctl restart mysqld
重启MySQL服务以应用配置更改。
-
创建具有复制权限的用户
mysql -uroot -pAbc-1234 mysql -uroot -pAbc-1234 -e "GRANT REPLICATION SLAVE ON *.* TO 'repluser'@'192.168.192.%' IDENTIFIED BY 'Abc-1234'; FLUSH PRIVILEGES;"
创建用于复制的用户并授予必要权限。
-
查看主服务器状态
SHOW MASTER STATUS\G;
获取二进制日志文件和位置,用于配置从服务器。
从服务器 (master2)
-
编辑MySQL配置文件
vim /etc/my.cnf
添加以下内容:
[mysqld] server-id = 2
设置从服务器的ID。
-
重启MySQL服务
systemctl restart mysqld
重启MySQL服务以应用配置更改。
-
连接主服务器
mysql -uroot -pAbc-1234 CHANGE MASTER TO MASTER_HOST='192.168.192.100', MASTER_USER='repluser', MASTER_PASSWORD='Abc-1234', MASTER_PORT=3306, MASTER_LOG_FILE='mysql-bin.000002', MASTER_LOG_POS=740;
根据主服务器状态配置从服务器的复制信息。
-
启动从服务器
START SLAVE;
-
查看从服务器状态
SHOW SLAVE STATUS\G;
检查从服务器复制状态,确保成功连接并同步。
-
4.测试主从同步
在主服务器上创建数据库和表,并插入数据:
mysql> create database smqnz;
mysql> use smqnz;
mysql> create table test(age int);
mysql> insert into test values(1);
mysql> select * from test;
+------+
| age |
+------+
| 1 |
+------+
在从服务器上检查数据是否同步:
mysql> select * from smqnz.test;
+------+
| age |
+------+
| 1 |
+------+
1 row in set (0.00 sec)
以上操作确保了主服务器的数据成功复制到从服务器,实现了主从同步。
总结
通过本文的介绍,我们成功地在Linux系统中配置了MySQL数据库的主从复制,确保了数据的实时同步与备份。这不仅提高了数据的安全性,还为后续的扩展和维护提供了便利。希望读者能够运用所学知识,进一步探索和优化自己的数据库管理方案,为实现更高效的业务运营打下坚实的基础。
成功的路上没有捷径,只有不断的努力与坚持。如果你和我一样,坚信努力会带来回报,请关注我,点个赞,一起迎接更加美好的明天!你的支持是我继续前行的动力!"
"每一次创作都是一次学习的过程,文章中若有不足之处,还请大家多多包容。你的关注和点赞是对我最大的支持,也欢迎大家提出宝贵的意见和建议,让我不断进步。"
神秘泣男子
相关文章:

Linux中Mysql5.7主从架构(一主多从)配置教程
🏡作者主页:点击! 🐧Linux基础知识(初学):点击! 🐧Linux高级管理防护和群集专栏:点击! 🔐Linux中firewalld防火墙:点击! ⏰️创作…...

BACnet物联网关BL103:Modbus协议转BACnet/MSTP
随着物联网技术在楼宇自动化与暖通控制系统中的迅猛发展,构建一种既经济高效又高度可靠的协议转换物联网关成为了不可或缺的核心硬件组件。在此背景下,我们钡铼特别推荐一款主流的BAS(楼宇自动化系统)与BACnet物联网关——BL103&a…...
Go 语言条件变量 Cond
1.Cond 的使用方法 Go 标准库提供 Cond 同步原语的目的是为等待/通知场景下的并发操作提供支持。Cond 通常用于等待某个条件的一组 goroutine,当条件变为 true 时,其中一个或者所有的 goroutine 会被唤醒执行。 Cond 与某个条件相关,这个条件需要一组 goroutine 协作达到。当这…...

PostgreSQL 中如何重置序列值:将自增 ID 设定为特定值开始
我是从excel中将数据导入,然后再通过sql插入数据,就报错。 需要设置自增ID开始值 1、确定序列名称: 首先,需要找到与的增字段相关的序列名称。假设表名是 my_table 和自增字段是 id,可以使用以下查询来获取序列名称…...

Unity 之 【Android Unity 共享纹理】之 Android 共享图片给 Unity 显示
Unity 之 【Android Unity 共享纹理】之 Android 共享图片给 Unity 显示 目录 Unity 之 【Android Unity 共享纹理】之 Android 共享图片给 Unity 显示 一、简单介绍 二、共享纹理 1、共享纹理的原理 2、共享纹理涉及到的关键知识点 3、什么可以实现共享 不能实现共享…...
Go语言的数据结构
数据结构 数组 支持多维数组,属于值类型,支持range遍历 例子:随机生成长度为10整数数组 package main import ("fmt""math/rand" ) // 赋值 随机获取100以内的整数 func RandomArrays() {var array [10]int //声明var…...
python_在sqlite中创建表并写入表头
python_在sqlite中创建表并写入表头 import sqlite3def write_title_to_sqlite(tableName,titleList,dataTypeGroupsList,database_path):conn sqlite3.connect(database_path)# 创建游标cursor conn.cursor()#MEMO 长文本#create_table_bodycreate_table_body "序号 …...

1.c#(winform)编程环境安装
目录 安装vs创建应用帮助查看器安装与使用( msdn) 安装vs 安装什么版本看个人心情,或者公司开发需求需要 而本栏全程使用vs2022进行开发c#,着重讲解winform桌面应用开发 使用***.net framework***开发 那先去官网安装企业版的vs…...

图中的最短环
2608. 图中的最短环 现有一个含 n 个顶点的 双向 图,每个顶点按从 0 到 n - 1 标记。图中的边由二维整数数组 edges 表示,其中 edges[i] [ui, vi] 表示顶点 ui 和 vi 之间存在一条边。每对顶点最多通过一条边连接,并且不存在与自身相连的顶…...
安装依赖 npm install idealTree:lib: sill idealTree buildDeps 卡着不动
我一直怀疑是网络问题,因为等了很久也能安装成功,就是时间比较长,直到现在完全受不了了,决定好好整治下这个问题! 1、执行命令 npm config get userconfig 查看配置文件所在位置,将其删除。 2、执行 n…...

LLMs之Llama 3.1:Llama 3.1的简介、安装和使用方法、案例应用之详细攻略
LLMs之Llama 3.1:Llama 3.1的简介、安装和使用方法、案例应用之详细攻略 导读:2024年7月23日,Meta重磅推出Llama 3.1。本篇文章主要提到了Meta推出的Llama 3.1自然语言生成模型。 背景和痛点 >> 过去开源的大型语言模型在能力和性能上一…...
如何实现一个大模型在回答问题时同时提供相关内容链接
通义生成 为了让大模型在回答问题时能够提供相关内容链接,通常采用的方法是结合检索增强生成(Retrieval-Augmented Generation, RAG)的技术。这种方法可以让大模型在生成答案的同时,从外部知识源中检索相关信息,并将这…...

<数据集>玉米地杂草识别数据集<目标检测>
数据集格式:VOCYOLO格式 图片数量:9900张 标注数量(xml文件个数):9900 标注数量(txt文件个数):9900 标注类别数:2 标注类别名称:[Maize, Weed] 序号类别名称图片数框数1Maize8439125142Weed959231048…...
vue3中动态添加form表单校验
<template><div><div v-for"(formData, index) in forms" :key"index"><u-form :model"formData" :rules"rules" ref"formRefs"><u-form-item label"用户名" prop"username"…...

Java面试八股之什么是声明式事务管理,spring怎么实现声明式事务管理?
什么是声明式事务管理,spring怎么实现声明式事务管理? 声明式事务管理是一种编程范式,它允许开发人员通过声明性的配置或注解,而不是硬编码事务处理逻辑,来指定哪些方法或类应该在其上下文中执行事务。这种方法将事务…...
springboot 缓存预热的几种方案
缓存预热是指在 Spring Boot 项目启动时,预先将数据加载到缓存系统(如 Redis)中的一种机制。 这里我给大家总结几个缓存预热的方案。 方案1:使用启动监听事件实现缓存预热 可以使用 ApplicationListener 监听 ContextRefreshed…...

谷粒商城实战笔记-62-商品服务-API-品牌管理-OSS整合测试
文章目录 一,Java中上传文件到阿里云OSS1,整合阿里云OSS2,测试上传文件 二,Java中整合阿里云OSS服务指南引言准备工作1. 注册阿里云账号2. 获取Access Key3. 添加依赖 实现OSS客户端1. 初始化OSSClient2. 创建Bucket3. 上传文件4.…...
linux c 递归锁的介绍
递归锁的递归特性确实只是对于持有锁的线程。当一个线程获取了递归锁后,它可以多次重复获取该锁,而不会导致自身阻塞或死锁。这是递归锁的重要特点,它允许同一个线程在已经持有锁的情况下,再次获取相同的锁。 然而,对…...
React好用的组件库有哪些
React好用的组件库有很多,它们各自具有不同的特点和优势,适用于不同的开发场景和需求。以下是一些受欢迎的React组件库及其特点: Material-UI(现更名为MUI) 特点:这是一个开源的React组件库,实…...

简单快捷!Yarn的安装与使用指南
Yarn 是由 Facebook (现 Meta) 开发的包管理工具。 今天,我将介绍如何使用 Yarn。 目录 Yarn 的官方网站 关于安装 版本确认 开始一个新项目(创建 package.json 文件) 安装软件包 升级包 运行脚本 执行包的命令 卸载包 总结 Yarn 的…...

Docker 离线安装指南
参考文章 1、确认操作系统类型及内核版本 Docker依赖于Linux内核的一些特性,不同版本的Docker对内核版本有不同要求。例如,Docker 17.06及之后的版本通常需要Linux内核3.10及以上版本,Docker17.09及更高版本对应Linux内核4.9.x及更高版本。…...
【根据当天日期输出明天的日期(需对闰年做判定)。】2022-5-15
缘由根据当天日期输出明天的日期(需对闰年做判定)。日期类型结构体如下: struct data{ int year; int month; int day;};-编程语言-CSDN问答 struct mdata{ int year; int month; int day; }mdata; int 天数(int year, int month) {switch (month){case 1: case 3:…...
在HarmonyOS ArkTS ArkUI-X 5.0及以上版本中,手势开发全攻略:
在 HarmonyOS 应用开发中,手势交互是连接用户与设备的核心纽带。ArkTS 框架提供了丰富的手势处理能力,既支持点击、长按、拖拽等基础单一手势的精细控制,也能通过多种绑定策略解决父子组件的手势竞争问题。本文将结合官方开发文档,…...

JVM虚拟机:内存结构、垃圾回收、性能优化
1、JVM虚拟机的简介 Java 虚拟机(Java Virtual Machine 简称:JVM)是运行所有 Java 程序的抽象计算机,是 Java 语言的运行环境,实现了 Java 程序的跨平台特性。JVM 屏蔽了与具体操作系统平台相关的信息,使得 Java 程序只需生成在 JVM 上运行的目标代码(字节码),就可以…...

视觉slam十四讲实践部分记录——ch2、ch3
ch2 一、使用g++编译.cpp为可执行文件并运行(P30) g++ helloSLAM.cpp ./a.out运行 二、使用cmake编译 mkdir build cd build cmake .. makeCMakeCache.txt 文件仍然指向旧的目录。这表明在源代码目录中可能还存在旧的 CMakeCache.txt 文件,或者在构建过程中仍然引用了旧的路…...

nnUNet V2修改网络——暴力替换网络为UNet++
更换前,要用nnUNet V2跑通所用数据集,证明nnUNet V2、数据集、运行环境等没有问题 阅读nnU-Net V2 的 U-Net结构,初步了解要修改的网络,知己知彼,修改起来才能游刃有余。 U-Net存在两个局限,一是网络的最佳深度因应用场景而异,这取决于任务的难度和可用于训练的标注数…...

STM32标准库-ADC数模转换器
文章目录 一、ADC1.1简介1. 2逐次逼近型ADC1.3ADC框图1.4ADC基本结构1.4.1 信号 “上车点”:输入模块(GPIO、温度、V_REFINT)1.4.2 信号 “调度站”:多路开关1.4.3 信号 “加工厂”:ADC 转换器(规则组 注入…...
FOPLP vs CoWoS
以下是 FOPLP(Fan-out panel-level packaging 扇出型面板级封装)与 CoWoS(Chip on Wafer on Substrate)两种先进封装技术的详细对比分析,涵盖技术原理、性能、成本、应用场景及市场趋势等维度: 一、技术原…...
大数据驱动企业决策智能化的路径与实践
📝个人主页🌹:慌ZHANG-CSDN博客 🌹🌹期待您的关注 🌹🌹 一、引言:数据驱动的企业竞争力重构 在这个瞬息万变的商业时代,“快者胜”的竞争逻辑愈发明显。企业如何在复杂环…...
算法250609 高精度
加法 #include<stdio.h> #include<iostream> #include<string.h> #include<math.h> #include<algorithm> using namespace std; char input1[205]; char input2[205]; int main(){while(scanf("%s%s",input1,input2)!EOF){int a[205]…...