Mysql双主双从
双主双从
- 1.安装Mysql
- 1.1 查看linux版本
- 1.2 下载Mysql安装包
- 1.3 上传并解压
- 1.4 安装Mysql
- 1.5 编辑端口号
- 1.6 Mysql启动命令
- 1.7 更新密码
- 2.搭建Mysql主从复制
- 2.1 搭建Master主服务器
- 2.1.1 修改mysql配置文件
- 2.1.2 重启Mysql服务
- 2.1.3 创建Slave用户, 并授权
- 2.1.4 查看主服务器当前状态
- 2.2 搭建Slave从服务器
- 2.2.1 修改mysql配置文件
- 2.2.2 重启Mysql服务
- 2.2.3 配置主从同步
- 2.2.4 启动Slave线程
- 3.搭建Mysql主从复制
- 3.1 双Master机配置文件修改
- 3.1.1 Master1配置
- 3.1.2 Master2配置
- 3.1.2 重启Mysql,使配置生效
1.安装Mysql
1.1 查看linux版本
cat /etc/os-release

Kylin Linux(国产麒麟)是中国自主开发的操作系统
1.2 下载Mysql安装包
Mysql Download
因为Kylin Linux V10是基于CentOS 8开发的, 所以选择Red Hat Enterprise Linux 8 / Oracle Linux 8 (x86, 64-bit), RPM Bundle

1.3 上传并解压
上传到指定目录, 例如: /opt/mysql, 解压文件
tar xvf mysql-8.0.35-1.el8.x86_64.rpm-bundle.tar
1.4 安装Mysql
rpm -ivh mysql-community-common-8.0.35-1.el8.x86_64.rpm
rpm -ivh mysql-community-client-plugins-8.0.35-1.el8.x86_64.rpm
rpm -ivh mysql-community-libs-8.0.35-1.el8.x86_64.rpm
rpm -ivh mysql-community-client-8.0.35-1.el8.x86_64.rpm
rpm -ivh mysql-community-icu-data-files-8.0.35-1.el8.x86_64.rpm
rpm -ivh mysql-community-devel-8.0.35-1.el8.x86_64.rpm
rpm -ivh mysql-community-server-8.0.35-1.el8.x86_64.rpm
1.5 编辑端口号
vi /etc/my.cnf
修改端口号
# 端口号
port=33061
1.6 Mysql启动命令
systemctl start mysqld #启动 MySQL
其他命令
systemctl start mysqld #启动 MySQL
systemctl stop mysqld #关闭 MySQL
systemctl restart mysqld #重启 MySQL
systemctl status mysqld #查看 MySQL 状态
systemctl enable mysqld #设置开机自启
1.7 更新密码
1.查看初始密码
cat /var/log/mysqld.log | grep root@localhost
2.登录mysql
mysql -u root -p
3.更新密码
alter user root@localhost identified by 'MyS3cure!P@ssw0rd';
4.查看用户
SELECT User, Host FROM mysql.user;
2.搭建Mysql主从复制
- 主:192.166.16.74
- 从:192.166.16.29
2.1 搭建Master主服务器
2.1.1 修改mysql配置文件
vim /etc/my.cnf
server-id=1
log-bin=master-bin
binlog_format = MIXED
log-slave-updates=true
- server-id: 每台MySQL服务器必须有一个唯一的ID。可以设置为任意数字,但需确保唯一。
- log-bin: 启用二进制日志并指定日志文件的前缀。
- binlog_format=MIXED表示MySQL将根据具体情况动态选择使用基于语句的复制还是基于行的复制。这种模式在大多数应用场景中提供了性能和准确性之间的良好平衡。
2.1.2 重启Mysql服务
systemctl restart mysqld
2.1.3 创建Slave用户, 并授权
# 创建slave用户
CREATE USER 'replica'@'%' IDENTIFIED BY 'MyS3cure!P@ssw0rd';
# 授权
GRANT REPLICATION SLAVE ON *.* TO 'replica'@'%';
# 刷新权限
FLUSH PRIVILEGES;
2.1.4 查看主服务器当前状态
show master status

2.2 搭建Slave从服务器
2.2.1 修改mysql配置文件
vim /etc/my.cnf
# 修改,注意id与Master的不同,两个Slave的id也要不同
server-id = 2
# 添加,开启中继日志,从主服务器上同步日志文件记录到本地
relay-log=relay-log-bin
# 添加,定义中继日志文件的位置和名称
relay-log-index=slave-relay-bin.index
relay_log_recovery = 1
2.2.2 重启Mysql服务
systemctl restart mysqld
2.2.3 配置主从同步
CHANGE MASTER TO MASTER_HOST='192.210.16.238',
MASTER_USER='replica',
MASTER_PASSWORD='MyS3cure!P@ssw0rd',
MASTER_LOG_FILE=从主库中查询,
MASTER_LOG_POS=从主库中查询,
MASTER_PORT=33061;
2.2.4 启动Slave线程
start slave; #启动同步,如有报错执行 reset slave;
show slave status\G #查看 Slave 状态#确保 IO 和 SQL 线程都是 Yes,代表同步正常
Slave_IO_Running: Yes #负责与主机的io通信
Slave_SQL_Running: Yes #负责自己的slave mysql进程

3.搭建Mysql主从复制
一个主机Master1用于处理所有的写请求,它的从机Slave1和另一台主机Master2还有它的从机Slave2负责所有的读请求。当Master1主机宕机后,Master2主机负责写请求,Master1、Master2互为备份机。

| 编号 | 角色 | IP |
|---|---|---|
| 1 | Master1 | 192.166.16.74 |
| 2 | Slave1 | 192.166.16.29 |
| 3 | Master2 | 192.166.16.166 |
| 4 | Slave2 | 192.166.16.111 |
3.1 双Master机配置文件修改
3.1.1 Master1配置
vim /etc/my.cnf
my.cnf增加的内容:
#主服务器唯一ID (与 Master2,...... MasterN 的不同点)
server-id=1
#启用二进制日志, 日志文件的前缀为mysql-bin
log-bin=mysql-bin#从库的中继日志,主库日志写到中继日志,中继日志再重做到从库
# relay-log=myslql-relay-bin# binlog保留时间7天
expire_logs_days=7# binlog 文件的大小
max_binlog_size=1G#设置logbin格式。取值:STATEMENT (默认),ROW,MIXED
binlog_format=ROW# 该从库是否写入二进制日志。如果需要成为多主则可启用。只读可以不需要
log-slave-updates=1# 该服务器自增列的初始值。(与 Master2,...... MasterN 的不同点)
auto-increment-offset=1# 该服务器自增列增量。其默认值是1, 取值范围是1 .. 65535
auto-increment-increment=2# 设置不要复制的数据库(可设置多个)
binlog-ignore-db=information_schema
binlog-ignore-db=mysql
binlog-ignore-db=performance_schema
binlog-ignore-db=sys#设置需要复制的数据库(可选)。
# 如果要配置了此项,则 mysql 只复制下面指定的数据库。
# 如果不配置此项,则 mysql 默认复制所有的数据库(不包含 binlog-ignore-db 的数据库)
#binlog-do-db=需要复制的主数据库1
#binlog-do-db=需要复制的主数据库2
3.1.2 Master2配置
vim /etc/my.cnf
my.cnf增加的内容:
#主服务器唯一ID。(与 Master1,Master3,...... MasterN 的不同点)
server-id=3
#启用二进制日志
log-bin=mysql-bin#从库的中继日志,主库日志写到中继日志,中继日志再重做到从库
# relay-log=myslql-relay-bin# binlog保留时间7天
expire_logs_days=7# binlog 文件的大小
max_binlog_size=1G#设置logbin格式。取值: STATEMENT (默认),ROW,MIXED
binlog_format=ROW# 双主模式中,log-slave-updates必须配置。因为作为从数据库的时候,有写入操作也要更新二进制日志文件
log-slave-updates=1# 该服务器自增列的初始值。取值范围是1 .. 65535
auto-increment-offset=2# 该服务器自增列增量。(与 Master1,Master 3, ...... MasterN 的不同点)
auto-increment-increment=2# 设置不要复制的数据库(可设置多个)
binlog-ignore-db=information_schema
binlog-ignore-db=mysql
binlog-ignore-db=performance_schema
binlog-ignore-db=sys#设置需要复制的数据库(可选)
# 如果要配置了此项,则 mysql 只复制下面指定的数据库。
# 如果不配置此项,则 mysql 默认复制所有的数据库(不包含 binlog-ignore-db 的数据库)
#binlog-do-db=需要复制的主数据库1
#binlog-do-db=需要复制的主数据库2
3.1.2 重启Mysql,使配置生效
systemctl restart mysqld.service
相关文章:
Mysql双主双从
双主双从 1.安装Mysql1.1 查看linux版本1.2 下载Mysql安装包1.3 上传并解压1.4 安装Mysql1.5 编辑端口号1.6 Mysql启动命令1.7 更新密码 2.搭建Mysql主从复制2.1 搭建Master主服务器2.1.1 修改mysql配置文件2.1.2 重启Mysql服务2.1.3 创建Slave用户, 并授权2.1.4 查看主服务器当…...
安卓主板_MTK联发科主板定制开发|PCBA定制开发
MTK联发科安卓主板,采用MT6762八核平台方案,支持谷歌Android 11.0系统,MT6762采用ARM八核A53内核芯片、主频高达2.0GHz,GPU采用ARM PowerVR GE8329650MHZ,支持主流19201080分辨率,支持硬解H.264,…...
结合GPT与Python实现端口检测工具(含多线程)
端口检测器是一个非常实用的网络工具,它主要用于检测服务器或本地计算机上的特定端口是否处于开放状态。通过这个工具,你可以快速识别和诊断网络连接问题,确保关键服务的端口能够正常接收和处理数据。这对于网络管理员和开发者来说是一个不可…...
数字媒体产业发展现状剖析,洞悉数字产业园的创新之举
在当今数字化时代,数字媒体产业发展迅猛,呈现出一片繁荣景象。然而,在这繁荣的背后,数字媒体产业发展现状也存在着诸多挑战与机遇。 数字媒体产业发展现状的一个显著特点是技术的快速更新换代。从虚拟现实(VR…...
PDF文件转换为HTML文件
推荐使用 pdf2htmlEX(因为确实做的比较全) pdf2htmlEX 是一个开源工具,可以将PDF文件转换为HTML文件。你需要先安装pdf2htmlEX工具,并确保它在你的系统路径中可用。(花时间最多就是找包) 安装 pdf2htmlEX …...
简易版PHP软文发稿开源系统
软文发稿系统源码(软文发布系统)基于旧版本的媒介软文项目基础上整理出一套简易版,以满足不同客户群体。虽然是简易版 但麻雀虽小五脏俱全,基本能满足小众群体需求 具体功能如下: 大模块功能: 1、媒体发布 …...
React.createContext 的 多种使用方法 详细实现方案代码
React.createContext 是 React 的上下文 API 的核心方法之一,提供了一种无需通过组件树逐层传递 props 的方式来共享数据。它特别适合于全局状态的管理,比如用户信息、主题设置等。下面我将详细介绍 React.createContext 的多种使用方法,并提…...
计算机网络之IPv4深度解析
一.IP地址 IP地址的组成方式:网络号 主机号 可以这样理解,根据网络号找路由器,根据主机号找连着路由器的主机 早期分类的IP地址 表示如下: 其中,有些特殊的IP地址: 主机号全为0,表示本网…...
TinyGPT-V:微型视觉语言模型【VLM】
AI技术正在不断融入我们的日常生活。人工智能的一个应用包括多模态化,例如将语言与视觉模型相结合。这些视觉语言模型可以应用于视频字幕、语义搜索等任务。 本周,我将重点介绍一种名为 TinyGPT-V(Arxiv | GitHub)的最新视觉语言…...
pytorch自动微分
一、torch.autograd.backward(tensors, grad_tensorsNone, retain_graphNone, create_graphFalse)功能:自动求取梯度 grad_tensors:多梯度权重 # 自动求取梯度 # import torch # w torch.tensor([1.],requires_gradTrue) # x torch.tensor([2.],requir…...
TCP协议为什么是三次握手和四次挥手
1.一次握手&&二次握手 一次握手就能成功的话,也就代表着不需要进行确认,那么万一有恶意的服务器一直发送SYN,而服务器需要维护大量的连接,维护连接又需要成本,那么就很容易引发SYN洪水,导致服务器…...
利用ChatGPT提升学术论文撰写效率:从文献搜集到综述撰写的全面指南
大家好,感谢关注。我是七哥,一个在高校里不务正业,折腾学术科研AI实操的学术人。关于使用ChatGPT等AI学术科研的相关问题可以和作者七哥(yida985)交流,多多交流,相互成就,共同进步,为大家带来最酷最有效的智能AI学术科研写作攻略。 本文旨在介绍如何利用AI辅助工具,…...
智能、高效、安全,企业桌面软件管理系统,赋能企业数字化转型!提升工作效率不是梦!
为了在激烈的市场竞争中脱颖而出,实现可持续发展,数字化转型已成为企业不可或缺的战略选择!而在这一过程中,一款智能、高效、安全的企业桌面软件管理系统,如安企神,正逐步成为企业数字化转型的重要驱动力。…...
第N7周:调用Gensim库训练Word2Vec模型
本文为365天深度学习训练营 中的学习记录博客原作者:K同学啊 任务: ●1. 阅读NLP基础知识里Word2vec详解一文,了解并学习Word2vec相关知识 ●2. 创建一个.txt文件存放自定义词汇,防止其被切分 数据集:选择《人民的名义…...
基于Crontab调度,实现Linux下的定时任务执行。
文章目录 引言I 预备知识Crontab的基本组成Crontab的配置文件格式Crontab的配置文件Crontab不可引用环境变量杀死进程命令II Crontab实践案例Crontab工具的使用重启tomcat服务每分钟都打印当前时间到一个文件中30s执行一次III 常见问题并发冗余执行任务&& 和|| 和 ;的区…...
Centos系统中创建定时器完成定时任务
Centos系统中创建定时器完成定时任务 时间不一定能证明很多东西,但是一定能看透很多东西,坚信自己的选择,不动摇,使劲跑,明天会更好。 在 CentOS 上,可以使用 systemd 定时器来创建一个每十秒执行一次的任务…...
WLAN基础知识(1)
WLAN: 无线局域网,无线技术:Wi-Fi、红外、蓝牙等 WLAN设备: 胖AP: 适用于家庭等小型网络,可独立配置,如:家用Wi-Fi路由器 瘦AP: 适用于大中型企业,需要配合AC…...
网络安全实训第三天(文件上传、SQL注入漏洞)
1 文件上传漏洞 准备一句话文件wjr.php.png,进入到更换头像的界面,使用BP拦截选择文件的请求 拦截到请求后将wjr.php.png修改为wjr.php,进行转发 由上图可以查看到上传目录为网站目录下的upload/avator,查看是否上传成功 使用时间戳在线工具…...
Nginx 学习之 配置支持 IPV6 地址
目录 搭建并测试1. 下载 NG 安装包2. 安装编译工具及库文件3. 上传并解压安装包4. 编译5. 安装6. 修改配置7. 启动 NG8. 查看 IP 地址9. 测试 IP 地址9.1. 测试 IPV4 地址9.2. 测试 IPV6 地址 IPV6 测试失败原因1. curl: [globbing] error: bad range specification after pos …...
springboot+伊犁地区游客小助手-小程序—计算机毕业设计源码无偿分享需要私信20888
摘 要 提起伊犁,很多人常说,不去新疆,你就不知道中国有多美,不去伊犁,你就不知道新疆有多美。在这里你可以看到中国最美的景色。如果可可托海海是一个野性和粗犷的战士,那么那拉提一定是一个温柔和玉般的绅…...
synchronized 学习
学习源: https://www.bilibili.com/video/BV1aJ411V763?spm_id_from333.788.videopod.episodes&vd_source32e1c41a9370911ab06d12fbc36c4ebc 1.应用场景 不超卖,也要考虑性能问题(场景) 2.常见面试问题: sync出…...
为什么需要建设工程项目管理?工程项目管理有哪些亮点功能?
在建筑行业,项目管理的重要性不言而喻。随着工程规模的扩大、技术复杂度的提升,传统的管理模式已经难以满足现代工程的需求。过去,许多企业依赖手工记录、口头沟通和分散的信息管理,导致效率低下、成本失控、风险频发。例如&#…...
Android 之 kotlin 语言学习笔记三(Kotlin-Java 互操作)
参考官方文档:https://developer.android.google.cn/kotlin/interop?hlzh-cn 一、Java(供 Kotlin 使用) 1、不得使用硬关键字 不要使用 Kotlin 的任何硬关键字作为方法的名称 或字段。允许使用 Kotlin 的软关键字、修饰符关键字和特殊标识…...
C/C++ 中附加包含目录、附加库目录与附加依赖项详解
在 C/C 编程的编译和链接过程中,附加包含目录、附加库目录和附加依赖项是三个至关重要的设置,它们相互配合,确保程序能够正确引用外部资源并顺利构建。虽然在学习过程中,这些概念容易让人混淆,但深入理解它们的作用和联…...
华为OD机考-机房布局
import java.util.*;public class DemoTest5 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseSystem.out.println(solve(in.nextLine()));}}priv…...
【JVM】Java虚拟机(二)——垃圾回收
目录 一、如何判断对象可以回收 (一)引用计数法 (二)可达性分析算法 二、垃圾回收算法 (一)标记清除 (二)标记整理 (三)复制 (四ÿ…...
省略号和可变参数模板
本文主要介绍如何展开可变参数的参数包 1.C语言的va_list展开可变参数 #include <iostream> #include <cstdarg>void printNumbers(int count, ...) {// 声明va_list类型的变量va_list args;// 使用va_start将可变参数写入变量argsva_start(args, count);for (in…...
libfmt: 现代C++的格式化工具库介绍与酷炫功能
libfmt: 现代C的格式化工具库介绍与酷炫功能 libfmt 是一个开源的C格式化库,提供了高效、安全的文本格式化功能,是C20中引入的std::format的基础实现。它比传统的printf和iostream更安全、更灵活、性能更好。 基本介绍 主要特点 类型安全:…...
comfyui 工作流中 图生视频 如何增加视频的长度到5秒
comfyUI 工作流怎么可以生成更长的视频。除了硬件显存要求之外还有别的方法吗? 在ComfyUI中实现图生视频并延长到5秒,需要结合多个扩展和技巧。以下是完整解决方案: 核心工作流配置(24fps下5秒120帧) #mermaid-svg-yP…...
Linux 下 DMA 内存映射浅析
序 系统 I/O 设备驱动程序通常调用其特定子系统的接口为 DMA 分配内存,但最终会调到 DMA 子系统的dma_alloc_coherent()/dma_alloc_attrs() 等接口。 关于 dma_alloc_coherent 接口详细的代码讲解、调用流程,可以参考这篇文章,我觉得写的非常…...
