MySQL双主搭建-5.7.35
文章目录
- 上传并安装MySQL 5.7.35
- 双主复制的配置
- 实例一:172.25.0.19:
- 实例二:172.25.0.20:
- 配置复制用户
- 在实例 1 (172.25.0.19)上执行:
- 在实例 2 (172.25.0.20)上执行:
- 配置主从复制
- 查看实例 2 节点状态:
- 在实例 1 上执行:
- 查看实例 1 节点状态:
- 在实例 2 上执行:
- 验证复制状态
- 测试双主复制
- 在 Server A 上操作:
- 在 Server B 上操作:
- 回到 Server A 上操作:
上传并安装MySQL 5.7.35
(172.25.0.19与172.25.0.20均部署安装并启动)
[root@QYWLAQ_VMC4234 ~]# hostnamectlStatic hostname: QYWLAQ_VMC4234Icon name: computer-vmChassis: vmMachine ID: cd3605d12efd430fb723eb507cf5ce3bBoot ID: 00f929e5510944efb40d53ef55d92a49Virtualization: kvmOperating System: CentOS Linux 7 (Core)CPE OS Name: cpe:/o:centos:centos:7Kernel: Linux 3.10.0-1160.el7.x86_64Architecture: x86-64[root@QYWLAQ_VMC4234 ~]# ll
-rw-r--r-- 1 citc unicom 26658592 12月 25 17:02 mysql-community-client-5.7.35-1.el7.x86_64.rpm
-rw-r--r-- 1 citc unicom 317800 12月 25 17:03 mysql-community-common-5.7.35-1.el7.x86_64.rpm
-rw-r--r-- 1 citc unicom 2473348 12月 25 17:03 mysql-community-libs-5.7.35-1.el7.x86_64.rpm
-rw-r--r-- 1 citc unicom 1263816 12月 26 14:35 mysql-community-libs-compat-5.7.35-1.el7.x86_64.rpm
-rw-r--r-- 1 citc unicom 182213816 12月 25 17:05 mysql-community-server-5.7.35-1.el7.x86_64.rpm# 安装rpm包
[root@QYWLAQ_VMC4234 ~]# yum localinstall -y *.rpm# 启动并设置开启自启
[root@QYWLAQ_VMC4234 ~]# systemctl enable --now mysqld[root@QYWLAQ_VMC4234 citc]# systemctl status mysqld
● mysqld.service - MySQL ServerLoaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)Active: active (running) since 三 2025-02-26 12:24:03 CST; 4min 26s agoDocs: man:mysqld(8)http://dev.mysql.com/doc/refman/en/using-systemd.htmlProcess: 8441 ExecStart=/usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid $MYSQLD_OPTS (code=exited, status=0/SUCCESS)Process: 8374 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS)Main PID: 8444 (mysqld)Tasks: 27Memory: 289.2MCGroup: /system.slice/mysqld.service└─8444 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid2月 26 12:23:57 QYWLAQ_VMC4234 systemd[1]: Starting MySQL Server...
2月 26 12:24:03 QYWLAQ_VMC4234 systemd[1]: Started MySQL Server.# 获取初始密码
[root@QYWLAQ_VMC4234 citc]# sudo grep 'temporary password' /var/log/mysqld.log
2025-02-26T04:23:59.794639Z 1 [Note] A temporary password is generated for root@localhost: IlM3/)Ya6VMH# 登录
[root@QYWLAQ_VMC4234 citc]# mysql -u root -p'IlM3/)Ya6VMH'
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.35Copyright (c) 2000, 2021, Oracle and/or its affiliates.Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '8th3xY]:NA'; -- 修改root密码
Query OK, 0 rows affected (0.00 sec)mysql> FLUSH PRIVILEGES; -- 刷新权限以使修改立即生效
Query OK, 0 rows affected (0.01 sec)
双主复制的配置
实例一:172.25.0.19:
# 此配置文件中追加下述配置
[root@QYWLAQ_VMC4234 ~]# vi /etc/my.cnf[mysqld]
# 基本配置
server-id = 1 # 每个实例的 server-id 必须唯一
log_bin = /var/log/mysql/mysql-bin.log # 启用二进制日志
binlog_format = ROW # 推荐使用 ROW 格式
expire_logs_days = 7 # 自动清理 7 天前的日志
max_binlog_size = 100M # 每个二进制日志文件的最大大小# 双主复制配置
log_slave_updates = 1 # 从库记录二进制日志(必须启用)
auto_increment_increment = 2 # 自增步长
auto_increment_offset = 1 # 自增起始值(实例 1 为 1,实例 2 为 2)# 复制过滤(可选)
replicate-do-db = my_database # 只复制指定的数据库
replicate-ignore-db = mysql # 忽略系统库# 其他配置
bind-address = 0.0.0.0 # 允许远程连接
重启MySQL
[root@QYWLAQ_VMC4234 ~]# systemctl restart mysqld
实例二:172.25.0.20:
# 此配置文件中追加下述配置
[root@QYWLAQ_VMC1091 ~]# vi /etc/my.cnf[mysqld]
# 基本配置
server-id = 2 # 每个实例的 server-id 必须唯一
log_bin = /var/log/mysql/mysql-bin.log # 启用二进制日志
binlog_format = ROW # 推荐使用 ROW 格式
expire_logs_days = 7 # 自动清理 7 天前的日志
max_binlog_size = 100M # 每个二进制日志文件的最大大小# 双主复制配置
log_slave_updates = 1 # 从库记录二进制日志(必须启用)
auto_increment_increment = 2 # 自增步长
auto_increment_offset = 2 # 自增起始值(实例 1 为 1,实例 2 为 2)# 复制过滤(可选)
replicate-do-db = my_database # 只复制指定的数据库
replicate-ignore-db = mysql # 忽略系统库# 其他配置
bind-address = 0.0.0.0 # 允许远程连接
重启MySQL
[root@QYWLAQ_VMC1091 ~]# systemctl restart mysqld
配置复制用户
在每个 MySQL 实例上创建一个用于复制的用户。
在实例 1 (172.25.0.19)上执行:
mysql> CREATE USER 'replication'@'172.25.0.20' IDENTIFIED BY '@2X0wZY/rq';
Query OK, 0 rows affected (0.01 sec)mysql> GRANT REPLICATION SLAVE ON *.* TO 'replication'@'172.25.0.20';
Query OK, 0 rows affected (0.00 sec)mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.01 sec)
查询用户
mysql> SELECT User, Host FROM mysql.user;
+---------------+-------------+
| User | Host |
+---------------+-------------+
| replication | 172.25.0.20 |
| mysql.session | localhost |
| mysql.sys | localhost |
| root | localhost |
+---------------+-------------+
4 rows in set (0.00 sec)
在实例 2 (172.25.0.20)上执行:
mysql> CREATE USER 'replication'@'172.25.0.19' IDENTIFIED BY '@2X0wZY/rq';
Query OK, 0 rows affected (0.00 sec)mysql> GRANT REPLICATION SLAVE ON *.* TO 'replication'@'172.25.0.19';
Query OK, 0 rows affected (0.00 sec)mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)
查询用户
mysql> SELECT User, Host FROM mysql.user;
+---------------+-------------+
| User | Host |
+---------------+-------------+
| replication | 172.25.0.19 |
| mysql.session | localhost |
| mysql.sys | localhost |
| root | localhost |
+---------------+-------------+
4 rows in set (0.00 sec)
配置主从复制
在每个实例上配置对方为主库。
查看实例 2 节点状态:
mysql> SHOW MASTER STATUS;
+------------------+----------+--------------+------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000002 | 964 | | | |
+------------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)
在实例 1 上执行:
CHANGE MASTER TOMASTER_HOST='172.25.0.20',MASTER_USER='replication',MASTER_PASSWORD='@2X0wZY/rq',MASTER_LOG_FILE='mysql-bin.000002', -- 替换为实例 2 的当前 binlog 文件MASTER_LOG_POS=1784; -- 替换为实例 2 的当前 binlog 位置
START SLAVE;
查看实例 1 节点状态:
mysql> SHOW MASTER STATUS;
+------------------+----------+--------------+------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000002 | 964 | | | |
+------------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)
在实例 2 上执行:
CHANGE MASTER TOMASTER_HOST='172.25.0.19',MASTER_USER='replication',MASTER_PASSWORD='@2X0wZY/rq',MASTER_LOG_FILE='mysql-bin.000002', -- 替换为实例 1 的当前 binlog 文件MASTER_LOG_POS=1784; -- 替换为实例 1 的当前 binlog 位置
START SLAVE;
验证复制状态
在每个实例上执行以下命令,检查复制状态:
SHOW SLAVE STATUS\G;
确保以下字段的值为 Yes
:
Slave_IO_Running
Slave_SQL_Running
测试双主复制
在 Server A 上操作:
创建测试数据库和表:
CREATE DATABASE test_db;
USE test_db;
CREATE TABLE test_table (id INT AUTO_INCREMENT PRIMARY KEY,name VARCHAR(50)
) ENGINE=InnoDB;
插入数据:
INSERT INTO test_table (name) VALUES ('Server A Data');
在 Server B 上操作:
检查数据是否同步:
USE test_db;
SELECT * FROM test_table;
应该能看到 Server A Data
。
插入数据:
INSERT INTO test_table (name) VALUES ('Server B Data');
回到 Server A 上操作:
检查数据是否同步:
USE test_db;
SELECT * FROM test_table;
table (name) VALUES (‘Server A Data’);
### 在 Server B 上操作:**检查数据是否同步**:
USE test_db;
SELECT * FROM test_table;
应该能看到 `Server A Data`。**插入数据**:
INSERT INTO test_table (name) VALUES (‘Server B Data’);
### 回到 Server A 上操作:**检查数据是否同步**:
USE test_db;
SELECT * FROM test_table;
应该能看到 `Server B Data`。
相关文章:
MySQL双主搭建-5.7.35
文章目录 上传并安装MySQL 5.7.35双主复制的配置实例一:172.25.0.19:实例二:172.25.0.20: 配置复制用户在实例 1 (172.25.0.19)上执行:在实例 2 (172.25.0.20)上执行&…...

Uniapp开发微信小程序插件的一些心得
一、uniapp 开发微信小程序框架搭建 1. 通过 vue-cli 创建 uni-ap // nodejs使用18以上的版本 nvm use 18.14.1 // 安装vue-cli npm install -g vue/cli4 // 选择默认模版 vue create -p dcloudio/uni-preset-vue plugindemo // 运行 uniapp2wxpack-cli npx uniapp2wxpack --…...

Vscode通过Roo Cline接入Deepseek
文章目录 背景第一步、安装插件第二步、申请API key第三步、Vscode中配置第四步、Deepseek对话 背景 在前期介绍【IDEA通过Contince接入Deepseek】步骤和流程,那如何在vscode编译器中使用deepseek,记录下来,方便备查。 第一步、安装插件 在…...

不同规模企业如何精准选择AI工具: DeepSeek、Grok 和 ChatGPT 三款主流 AI 工具深度剖析与对比
本文深入探讨了最近国内外主流的 DeepSeek、Grok 和 ChatGPT 三款主流 AI 工具的技术细节、性能表现、应用场景及局限性,并从技术能力、功能需求、成本预算、数据安全和合规以及服务与支持五个关键维度,详细分析了不同规模企业在选择 AI 工具时的考量因素…...

如何有效判断与排查Java GC问题
目录 一、GC的重要性与对性能的影响 (一)GC对性能的影响简要分析 1.GC暂停与应用停顿 2.GC吞吐量与资源利用率 3.GC对内存管理的作用:资源回收 4.GC策略与优化的选择 (二)GC的双刃剑 二、GC性能评价标准 &…...

【笔记】用大预言模型构建专家系统
最近闲庭漫步,赏一赏各个AI大语言模型芳容。也趁着时间,把倪海夏一家的天纪和人纪视频看完了,感谢倪先生和现在网络的知识分享,受益匪浅。但是发现看完,很多不错的知识都不能记录在脑子里,那用的时候岂不是…...
Android SystemUI深度定制实战:下拉状态栏集成响铃功能开关全解析
一、功能实现全景视图 目标场景:在Android 14系统级ROM定制中,为SystemUI下拉状态栏的QuickQSPanel区域新增响铃模式切换开关,实现静音/响铃快速切换功能。该功能需通过三层关键改造实现: 二、核心实现三部曲 1. 配置注入&…...

【Python】基础语法三
> 作者:დ旧言~ > 座右铭:松树千年终是朽,槿花一日自为荣。 > 目标:了解Python的函数、列表和数组。 > 毒鸡汤:有些事情,总是不明白,所以我不会坚持。早安! > 专栏选自ÿ…...

[Computer Vision]实验六:视差估计
目录 一、实验内容 二、实验过程 2.1.1 test.py文件 2.1.2 test.py文件结果与分析 2.2.1 文件代码 2.2.2 结果与分析 一、实验内容 给定左右相机图片,估算图片的视差/深度;体现极线校正(例如打印前后极线对)、同名点匹配…...

【 开发知识点 一 】 随机数生成器 /dev/urandom 和 /dev/random
文章目录 一、随机数生成器 是什么 ?二、为什么 需要 随机数生成器 ?三、随机数生成器 基本原理四、随机数生成器 三个输出接口五、随机生成器 应用1、简单应用2、项目应用一、随机数生成器 是什么 ? /dev/random 和 /dev/urandom 是 Linux 上的字符设备文件,它们是随机数…...

LabVIEW虚拟弗兰克赫兹实验仪
随着信息技术的飞速发展,虚拟仿真技术已经成为教学和研究中不可或缺的工具。开发了一种基于LabVIEW平台开发的虚拟弗兰克赫兹实验仪,该系统不仅能模拟实验操作,还能实时绘制数据图形,极大地丰富了物理实验的教学内容和方式。 …...

LLC谐振变换器恒压恒流双竞争闭环simulink仿真
1.模型简介 本仿真模型基于MATLAB/Simulink(版本MATLAB 2017Ra)软件。建议采用matlab2017 Ra及以上版本打开。(若需要其他版本可联系代为转换)针对全桥LLC拓扑,利用Matlab软件搭建模型,分别对轻载…...

TVbox蜂蜜影视:智能电视观影新选择,简洁界面与强大功能兼具
蜂蜜影视是一款基于猫影视开源项目 CatVodTVJarLoader 开发的智能电视软件,专为追求简洁与高效观影体验的用户设计。该软件从零开始编写,界面清爽,操作流畅,特别适合在智能电视上使用。其最大的亮点在于能够自动跳过失效的播放地址…...

Python 绘制迷宫游戏,自带最优解路线
1、需要安装pygame 2、上下左右移动,空格实现物体所在位置到终点的路线,会有虚线绘制。 import pygame import random import math# 迷宫单元格类 class Cell:def __init__(self, x, y):self.x xself.y yself.walls {top: True, right: True, botto…...

vue3学习-1(基础)
vue3学习-1(基础) 1. 开始API 风格选项式 API (Options API)组合式 API (Composition API) 快速创建个应用 2.基础1. 创建个应用2.模板语法3.响应式基础reactive() 的局限性[](https://cn.vuejs.org/guide/essentials/reactivity-fundamentals.html#limi…...

deepseek使用记录18——文化基因之文化融合
文明长河中的生命浪花 在洛阳白马寺的银杏树下,年轻母亲指着"农禅并重"碑刻给孩子讲述祖辈耕作的故事;在哔哩哔哩的直播间里,00后女孩穿着汉服跳起街舞,弹幕飘过"这才是文化缝合怪"。当文明交融的宏大叙事照…...

Hadoop简介
1. Hadoop简介 官网:http://hadoop.apache.org 1.1 Hadoop架构 Hadoop由三个模块组成:分布式存储HDFS、分布式计算MapReduce、资源调度引擎YARN 1.2 Hadoop历史 Hadoop作者Doug Cutting Apache Lucene是一个文本搜索系统库 Apache Nutch作为前者的一部…...

密码学(哈希函数)
4.1 Hash函数与数据完整性 数据完整性: 检测传输消息(加密或未加密)的修改。 密码学Hash函数: 构建某些数据的简短“指纹”;如果数据被篡改,则该指纹(以高概率)不再有效。Hash函数…...
谈谈单例模式中通过Htools包的SpringUtil.getBean获取Bean的好处
目录 优势 解决依赖注入失效问题: 典型应用场景: 好处 1. 实例化时序问题 2. 延迟获取解决空指针 3. 设计模式与 Spring 的权衡 代码对比:错误 vs 正确 错误示例(空指针): 正确实现(延…...

本地部署大语言模型-DeepSeek
DeepSeek 是国内顶尖 AI 团队「深度求索」开发的多模态大模型,具备数学推理、代码生成等深度能力,堪称"AI界的六边形战士"。 Hostease AMD 9950X/96G/3.84T NVMe/1G/5IP/RTX4090 GPU服务器提供多种计费模式。 DeepSeek-R1-32B配置 配置项 规…...

MPNet:旋转机械轻量化故障诊断模型详解python代码复现
目录 一、问题背景与挑战 二、MPNet核心架构 2.1 多分支特征融合模块(MBFM) 2.2 残差注意力金字塔模块(RAPM) 2.2.1 空间金字塔注意力(SPA) 2.2.2 金字塔残差块(PRBlock) 2.3 分类器设计 三、关键技术突破 3.1 多尺度特征融合 3.2 轻量化设计策略 3.3 抗噪声…...

微信小程序之bind和catch
这两个呢,都是绑定事件用的,具体使用有些小区别。 官方文档: 事件冒泡处理不同 bind:绑定的事件会向上冒泡,即触发当前组件的事件后,还会继续触发父组件的相同事件。例如,有一个子视图绑定了b…...

盘古信息PCB行业解决方案:以全域场景重构,激活智造新未来
一、破局:PCB行业的时代之问 在数字经济蓬勃发展的浪潮中,PCB(印制电路板)作为 “电子产品之母”,其重要性愈发凸显。随着 5G、人工智能等新兴技术的加速渗透,PCB行业面临着前所未有的挑战与机遇。产品迭代…...

从WWDC看苹果产品发展的规律
WWDC 是苹果公司一年一度面向全球开发者的盛会,其主题演讲展现了苹果在产品设计、技术路线、用户体验和生态系统构建上的核心理念与演进脉络。我们借助 ChatGPT Deep Research 工具,对过去十年 WWDC 主题演讲内容进行了系统化分析,形成了这份…...
ssc377d修改flash分区大小
1、flash的分区默认分配16M、 / # df -h Filesystem Size Used Available Use% Mounted on /dev/root 1.9M 1.9M 0 100% / /dev/mtdblock4 3.0M...
STM32+rt-thread判断是否联网
一、根据NETDEV_FLAG_INTERNET_UP位判断 static bool is_conncected(void) {struct netdev *dev RT_NULL;dev netdev_get_first_by_flags(NETDEV_FLAG_INTERNET_UP);if (dev RT_NULL){printf("wait netdev internet up...");return false;}else{printf("loc…...

2021-03-15 iview一些问题
1.iview 在使用tree组件时,发现没有set类的方法,只有get,那么要改变tree值,只能遍历treeData,递归修改treeData的checked,发现无法更改,原因在于check模式下,子元素的勾选状态跟父节…...
第25节 Node.js 断言测试
Node.js的assert模块主要用于编写程序的单元测试时使用,通过断言可以提早发现和排查出错误。 稳定性: 5 - 锁定 这个模块可用于应用的单元测试,通过 require(assert) 可以使用这个模块。 assert.fail(actual, expected, message, operator) 使用参数…...

ElasticSearch搜索引擎之倒排索引及其底层算法
文章目录 一、搜索引擎1、什么是搜索引擎?2、搜索引擎的分类3、常用的搜索引擎4、搜索引擎的特点二、倒排索引1、简介2、为什么倒排索引不用B+树1.创建时间长,文件大。2.其次,树深,IO次数可怕。3.索引可能会失效。4.精准度差。三. 倒排索引四、算法1、Term Index的算法2、 …...
Java 二维码
Java 二维码 **技术:**谷歌 ZXing 实现 首先添加依赖 <!-- 二维码依赖 --><dependency><groupId>com.google.zxing</groupId><artifactId>core</artifactId><version>3.5.1</version></dependency><de…...