mysql--主从复制--部署

MySQL 主从复制部署教程

一、主节点(Master)配置

1. 创建目录结构

mkdir -p /usr/local/src/mysql_demo/master_replica/{logs,configFile,data}

2. 编写主节点的 MySQL 配置文件 my.cnf
路径:/usr/local/src/mysql_demo/master_replica/configFile/my.cnf

内容如下:

[mysqld]
# 基础配置
server-id=1                         # 唯一标识主服务器
port=3306
user=mysql
basedir=/usr/local/mysql
datadir=/usr/local/src/mysql_demo/master_replica/data
socket=/tmp/mysql.sock# 日志配置
log-bin=/usr/local/src/mysql_demo/master_replica/logs/mysql-bin.log
log-error=/usr/local/src/mysql_demo/master_replica/logs/mysql-error.log
general_log_file=/usr/local/src/mysql_demo/master_replica/logs/mysql-general.log
slow_query_log_file=/usr/local/src/mysql_demo/master_replica/logs/mysql-slow.log
relay-log=/usr/local/src/mysql_demo/master_replica/logs/Relay.log
binlog-format=ROW                    # 二进制日志格式(推荐行格式)# 日志选项
general_log=1                        # 开启查询日志
slow_query_log=1                     # 开启慢查询日志
long_query_time=1                    # 慢查询阈值(超过1秒即记录)# 复制设置
log-bin-index=/usr/local/src/mysql_demo/master_replica/logs/mysql-bin.index
expire_logs_days=7                   # 二进制日志保存时间(7天)
max_binlog_size=100M
binlog-ignore-db=mysql,performance_schema,information_schema# 权限配置
skip-name-resolve                    # 跳过DNS解析,加快连接速度

3. 启动主节点 MySQL 服务
先关闭已存在的 MySQL 服务,重启主节点。

# 初始化数据库目录(如果是首次安装 MySQL)
mysqld --initialize-insecure --user=mysql --datadir=/usr/local/src/mysql_demo/master_replica/data# 启动 MySQL 服务
mysqld --defaults-file=/usr/local/src/mysql_demo/master_replica/configFile/my.cnf &

4. 创建复制用户
登录到 MySQL,创建用于主从同步的用户,并授予复制权限。

mysql -uroot -p# 创建复制用户
CREATE USER 'repl_user'@'%' IDENTIFIED BY 'repl_password';
#建议写成这样--修改成msyql_native_password插件
CREATE USER 'repl_user'@'%' IDENTIFIED with BY msyql_native_password 'repl_password';# 授权复制权限
GRANT REPLICATION SLAVE ON *.* TO 'repl_user'@'%';# 刷新权限表
FLUSH PRIVILEGES;#展示用户权限
show agtens for "username"@"host";# 查看主库状态,记录File和Position值8.4之前版本
SHOW MASTER STATUS;# 查看主库状态,记录File和Position值8.4之后版本
SHOW BINARY LOG STATUS

示例输出:
在这里插入图片描述
在这里插入图片描述

记下 File(如 mysql-bin.000008)和 Position(如 1191) 的值,后续配置从库时需要用到。


二、从节点(Slave)配置

1. 创建目录结构

mkdir -p /usr/local/src/mysql_demo/master_replica/{logs,configFile,data}

2. 编写从节点的 MySQL 配置文件 my.cnf
路径:/usr/local/src/mysql_demo/master_replica/configFile/my.cnf

内容如下:

[mysqld]
# 基础配置
server-id=2                         # 唯一标识从服务器
port=3307                           # 避免端口冲突
user=mysql
basedir=/usr/local/mysql
datadir=/usr/local/src/mysql_demo/master_replica/data
socket=/tmp/mysql_slave.sock# 日志配置
log-bin=/usr/local/src/mysql_demo/master_replica/logs/mysql-bin.log
log-error=/usr/local/src/mysql_demo/master_replica/logs/mysql-error.log
general_log_file=/usr/local/src/mysql_demo/master_replica/logs/mysql-general.log
slow_query_log_file=/usr/local/src/mysql_demo/master_replica/logs/mysql-slow.log
relay-log=/usr/local/src/mysql_demo/master_replica/logs/Relay.log
binlog-format=ROW                    # 二进制日志格式# 日志选项
general_log=1                        # 开启查询日志
slow_query_log=1                     # 开启慢查询日志
long_query_time=1                    # 慢查询阈值# 复制设置
log-bin-index=/usr/local/src/mysql_demo/master_replica/logs/mysql-bin.index
relay-log-index=/usr/local/src/mysql_demo/master_replica/logs/Relay.index
expire_logs_days=7                   # 二进制日志保存时间
max_binlog_size=100M
binlog-ignore-db=mysql,performance_schema,information_schema# 权限配置
skip-name-resolve                    # 跳过DNS解析

3. 启动从节点 MySQL 服务
先初始化数据目录并启动从节点 MySQL。

mysqld --initialize-insecure --user=mysql --datadir=/usr/local/src/mysql_demo/master_replica/datamysqld --defaults-file=/usr/local/src/mysql_demo/master_replica/configFile/my.cnf &

4. 配置复制关系
登录到从节点的 MySQL,设置主从复制。

mysql -uroot -p# 8.0.23之前版本设置主节点信息
CHANGE MASTER TO 
MASTER_HOST='主节点IP地址', 
MASTER_USER='repl_user', 
MASTER_PASSWORD='repl_password', 
MASTER_LOG_FILE='mysql-bin.000008',  # 主节点的二进制日志文件名
MASTER_LOG_POS=1191;                  # 主节点的二进制日志位置# 8.0.23之后版本设置主节点信息
CHANGE REPLICATION SOURCE TO 
SOURCE_HOST='192.168.121.134',
SOURCE_USER='master_replica',
SOURCE_PASSWORD='123456',
SOURCE_LOG_FILE='mysql-bin.000008',
SOURCE_LOG_POS=1191;# 8.0.22之前启动从节点
START SLAVE;# 8.0.22之后启动从节点
START REPLICA;# 8.0.22之前查看从节点状态
SHOW SLAVE STATUS\G;# 8.0.22之后查看从节点状态
SHOW REPLICA STATUS\G;#当配置有误时可执行下操作,然后重新配置从节点
#删除所有节点配置
stop replica;
reset replica all;

在这里插入图片描述
在这里插入图片描述

5. 验证复制状态
执行 SHOW SLAVE STATUS\G; 后,确认以下两项状态均为 Yes

Slave_IO_Running: Yes
Slave_SQL_Running: Yes

三、测试主从复制

在主节点创建一个数据库并插入数据,观察从节点是否同步。

# 在主节点
mysql -uroot -p
CREATE DATABASE test_db;
USE test_db;
CREATE TABLE demo (id INT PRIMARY KEY, value VARCHAR(50));
INSERT INTO demo VALUES (1, 'Hello from Master');# 在从节点查看同步结果
mysql -uroot -p
USE test_db;
SELECT * FROM demo;

如果从节点返回数据,即主从复制成功。

主服务器
在这里插入图片描述
从服务器
在这里插入图片描述


四、日志验证

查看日志目录 /usr/local/src/mysql_demo/master_replica/logs/,确认以下日志文件存在并正常记录日志:

mysql-bin.index
mysql-bin.log
mysql-error.log
mysql-general.log
mysql-slow.log
Relay.log

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Qt弹出新窗口并关闭(一个按钮)

参考:Qt基础 练习:弹出新窗口并关闭的两种实现方式(两个按钮、一个按钮)_qt打开一个窗口另一个关闭-CSDN博客 实现: 一个按钮,点击一次,按钮的名字从open window变为close window,…

游戏引擎学习第185天

回顾并计划今天的内容 我们完成了开始整理这些数据的工作,但我们还没有机会真正去查看这些数据的具体内容,因为我们只是刚刚开始了数据整理的基本工作。我们收集了大量的信息,但到目前为止,仍然没有足够的可视化工具来帮助我们理…

《一本书讲透Elasticsearch:原理、进阶与工程实践》读书笔记

1:es的组成部分: Elasticsearch 引擎:核心组件,处理索引和搜索请求 Kibana:es的可视化的数据界面,用于分析和展示数据 Beats(可选)轻量级的日志采集器 2:基本概念 es开…

[React 进阶系列] 组合组件 复合组件

[React 进阶系列] 组合组件 & 复合组件 今天写个人项目练手的时候搜到了一个比价有趣的实现,于是用了一下,发现这个 concept 不是特别的熟,于是上网找了下,返现了一个叫 复合组件(compound components) 的概念。搜索了一下后…

HarmonyOS NEXT 鸿蒙中关系型数据库@ohos.data.relationalStore API 9+

核心API ohos.data.relationalStore API 9 数据库 数据库是存储和管理数据的系统 数据库(Database)是一个以特定方式组织、存储和管理数据的集合,通常用于支持各种应用程序和系统的运行。它不仅是存放数据的仓库,还通过一定的…

用HTML和CSS生成炫光动画卡片

这个效果结合了渐变、旋转和悬浮效果的炫酷动画示例&#xff0c;使用HTML和CSS实现。 一、效果 二、实现 代码如下&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport&quo…

蓝桥杯第10届 后缀表达式

题目描述 给定 N 个加号、M 个减号以及 NM1 个整数 A1,A2,⋅⋅⋅,ANM1​&#xff0c;小明想知道在所有由这N 个加号、M 个减号以及 NM1 个整数凑出的合法的 后缀表达式中&#xff0c;结果最大的是哪一个&#xff1f; 请你输出这个最大的结果。 例如使用 1 2 3 -&#xff0c…

常见框架漏洞攻略-ThinkPHP篇

漏洞名称&#xff1a;Thinkphp5x远程命令执行及getshell 第一步&#xff1a;开启靶场 第二步&#xff1a;准备工具 第三步&#xff1a;启动工具&#xff0c;进行漏洞检测 #存在漏洞 1.目标存在tp5_invoke_func_code_exec_1漏洞2.目标存在tp5_dbinfo_leak漏洞payload:http://47…

sql长时间卡在gc current request事件

问题描述 凌晨跑批出现超时。SQL f0ng33agbpzhs业务需要执行160w次左右。现场人员杀掉该sql&#xff0c;重新发起业务&#xff0c;业务批次成功跑完。 问题分析 总体sql分析 分析对比sql的awrsqrpt&#xff0c;对比昨天3月8日的。 总体执行次数没有变化。Cpu时间、物理读等均…

MOSN(Modular Open Smart Network)-04-TLS 安全链路

前言 大家好&#xff0c;我是老马。 sofastack 其实出来很久了&#xff0c;第一次应该是在 2022 年左右开始关注&#xff0c;但是一直没有深入研究。 最近想学习一下 SOFA 对于生态的设计和思考。 sofaboot 系列 SOFAStack-00-sofa 技术栈概览 MOSN&#xff08;Modular O…

使用 Python 开发 MCP Server 及 Inspector 工具详解

使用 Python 开发 MCP Server 及 Inspector 工具详解 前言 模型上下文协议 (Model Context Protocol, MCP) 是一种新兴的协议&#xff0c;旨在让大型语言模型 (LLM) 更容易地与外部工具和服务集成。本文将介绍如何使用 Python 开发一个 MCP Server&#xff0c;并详细讲解如何使…

深入剖析 IS - IS 路由协议的原理、配置及与 OSPF 的对比

目录 ISIS概述 NSAP&#xff08;类似于IP地址&#xff09; NET NET配置举例 IS-IS 和OSPF区域划分的区别 区域和区域的分界点 IS-IS路由器的分类 Level-1路由器 Level-2路由器 Level-1-2路由器 ISIS支持的网络类型 ISIS开销值 IS-IS报文格式 IS-IS报文类型概述…

【deepseek 学c++】weakptr引用场景

std::weak_ptr 是 C 中与 std::shared_ptr 配合使用的智能指针&#xff0c;它本身不拥有资源的所有权&#xff0c;仅观察资源的状态&#xff0c;主要用于解决 shared_ptr 的循环引用问题和临时访问共享资源的需求。以下是 weak_ptr 的典型应用场景和核心价值&#xff1a;![ 为…

23种设计模式-适配器(Adapter)设计模式

适配器设计模式 &#x1f6a9;什么是适配器设计模式&#xff1f;&#x1f6a9;适配器设计模式的特点&#x1f6a9;适配器设计模式的结构&#x1f6a9;适配器设计模式的优缺点&#x1f6a9;适配器设计模式的Java实现&#x1f6a9;代码总结&#x1f6a9;总结 &#x1f6a9;什么是…

R语言对偏态换数据进行转换(对数、平方根、立方根)

我们进行研究的时候经常会遇见偏态数据&#xff0c;数据转换是统计分析和数据预处理中的一项基本技术。使用 R 时&#xff0c;了解如何正确转换数据有助于满足统计假设、标准化分布并提高分析的准确性。在 R 中实现和可视化最常见的数据转换&#xff1a;对数、平方根和立方根转…

REC一些操作解法

一.Linux命令长度突破 1.源码如下 <?php $param $_REQUEST[param];if ( strlen($param) < 8 ) {echo shell_exec($param); } 2.源码分析 echo执行函数&#xff0c;$_REQUEST可以接post、get、cookie传参 3.破题思路 源码中对参数长度做了限制&#xff0c;小于8位&a…

16个气象数据可视化网站整理分享

好的&#xff01;以下是关于“16个气象数据可视化网站整理分享”的软文&#xff1a; 16个气象数据可视化网站整理分享 气象数据可视化已成为现代气象研究、决策支持以及公众天气服务的重要组成部分。从天气预报到气候变化监测&#xff0c;全球许多气象数据可视化平台为专业人士…

Stereolabs ZED Box Mini:机器人与自动化领域的人工智能视觉新选择

在人工智能视觉技术快速发展的今天&#xff0c;其应用场景正在持续拓宽&#xff0c;从智能安防到工业自动化&#xff0c;从机器人技术到智能交通&#xff0c;各领域都在积极探索如何利用这一先进技术。而 Stereolabs 推出的ZED Box Mini&#xff0c;正是一款专为满足这些多样化…

LeetCode热题100|128.最长连续序列,283.移动零

128.最长连续序列 题目链接&#xff1a;128. 最长连续序列 - 力扣&#xff08;LeetCode&#xff09; 这里要求的一个乱序的数组里连续数字的个数&#xff0c;比如【100 &#xff0c;4&#xff0c;200&#xff0c;1&#xff0c;3&#xff0c;2】 里面连续的数字就是【1&#…

Unity-RectTransform设置UI width

不知道有没人需要这样的代码&#xff0c;就是.sizeDelta //不确定是不是英文翻译的原因&#xff0c;基本很难理解&#xff0c;sizeDeltaSize&#xff0c;//未必完全正确&#xff0c;但这么写好像总没错过 //image 在一个UnityEngine.UI.Image 的数组内foreach (var image in l…