MySQL 8.0 的主主复制(双向复制)
在 Windows Server 2022 Datacenter 上配置 MySQL 8.0 的主主复制(双向复制),步骤与 Linux 类似,但有一些特定的配置和路径需要注意。以下是详细的简化步骤:
1. 使用 root 用户登录
确保你以 root 用户登录到 MySQL 服务器。
mysql -u root -p
输入你的 root 密码后进入 MySQL 命令行界面。
2. 配置第一台主服务器 (master1)
2.1 编辑 my.ini
在 master1 上编辑 MySQL 配置文件 my.ini,通常位于 MySQL 安装目录下,例如 C:\ProgramData\MySQL\MySQL Server 8.0\my.ini。
[mysqld]
# 设置唯一 server-id
server-id=1# 启用二进制日志
log-bin=mysql-bin# 允许其他主机连接
bind-address=0.0.0.0# 自增 ID 增量和偏移量
auto-increment-increment=2
auto-increment-offset=1# 可选:指定需要复制的数据库
binlog-do-db=mydatabase# 可选:忽略不需要复制的数据库
binlog-ignore-db=mysql
2.2 重启 MySQL 服务
保存配置文件后,重启 MySQL 服务以应用更改。
通过 PowerShell 或命令提示符:
net stop mysql80
net start mysql80
或者使用服务管理器:
- 打开“服务”管理控制台 (
services.msc)。 - 找到
MySQL80服务。 - 右键点击并选择“重新启动”。
2.3 创建用于复制的用户
使用 root 用户登录到 MySQL master1 并创建一个专门用于复制的用户。
CREATE USER 'replicator'@'192.168.2.246' IDENTIFIED BY '123456';
GRANT REPLICATION SLAVE ON *.* TO 'replicator'@'192.168.2.246';
FLUSH PRIVILEGES;
2.4 获取二进制日志位置
获取当前的二进制日志文件名和位置。
SHOW MASTER STATUS;
记下 File 和 Position 的值,例如:
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000001 | 154 | mydatabase | mysql |
+------------------+----------+--------------+------------------+
3. 配置第二台主服务器 (master2)
3.1 编辑 my.ini
在 master2 上编辑 MySQL 配置文件 my.ini,通常位于 MySQL 安装目录下,例如 C:\ProgramData\MySQL\MySQL Server 8.0\my.ini。
[mysqld]
# 设置唯一 server-id
server-id=2# 启用二进制日志
log-bin=mysql-bin# 允许其他主机连接
bind-address=0.0.0.0# 自增 ID 增量和偏移量
auto-increment-increment=2
auto-increment-offset=2# 可选:指定需要复制的数据库
binlog-do-db=mydatabase# 可选:忽略不需要复制的数据库
binlog-ignore-db=mysql
3.2 重启 MySQL 服务
保存配置文件后,重启 MySQL 服务以应用更改。
通过 PowerShell 或命令提示符:
net stop mysql80
net start mysql80
或者使用服务管理器:
- 打开“服务”管理控制台 (
services.msc)。 - 找到
MySQL80服务。 - 右键点击并选择“重新启动”。
3.3 创建用于复制的用户
使用 root 用户登录到 MySQL master2 并创建一个专门用于复制的用户。
CREATE USER 'replicator'@'192.168.2.47' IDENTIFIED BY '123456';
GRANT REPLICATION SLAVE ON *.* TO 'replicator'@'192.168.2.47';
FLUSH PRIVILEGES;
3.4 获取二进制日志位置
获取当前的二进制日志文件名和位置。
SHOW MASTER STATUS;
记下 File 和 Position 的值,例如:
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000001 | 154 | mydatabase | mysql |
+------------------+----------+--------------+------------------+
4. 配置 master1 连接到 master2
4.1 停止复制线程
如果复制线程正在运行,先停止它们。
STOP SLAVE;
RESET SLAVE ALL;
4.2 配置 master1 连接到 master2
使用 root 用户登录到 MySQL master1 并配置复制信息。
CHANGE MASTER TOMASTER_HOST='192.168.2.246',MASTER_USER='replicator',MASTER_PASSWORD='123456',MASTER_LOG_FILE='mysql-bin.000001', -- 替换为实际的 binlog 文件名MASTER_LOG_POS=154, -- 替换为实际的 positionGET_MASTER_PUBLIC_KEY=1;START SLAVE;
将 MASTER_LOG_FILE 和 MASTER_LOG_POS 替换为之前记录的二进制日志文件名和位置。
5. 配置 master2 连接到 master1
5.1 停止复制线程
如果复制线程正在运行,先停止它们。
STOP SLAVE;
RESET SLAVE ALL;
5.2 配置 master2 连接到 master1
使用 root 用户登录到 MySQL master2 并配置复制信息。
CHANGE MASTER TOMASTER_HOST='192.168.2.47',MASTER_USER='replicator',MASTER_PASSWORD='123456',MASTER_LOG_FILE='mysql-bin.000001', -- 替换为实际的 binlog 文件名MASTER_LOG_POS=154, -- 替换为实际的 positionGET_MASTER_PUBLIC_KEY=1;START SLAVE;
将 MASTER_LOG_FILE 和 MASTER_LOG_POS 替换为之前记录的二进制日志文件名和位置。
6. 检查复制状态
在每台服务器上检查复制状态,确保一切正常。
在 master1 上检查:
SHOW SLAVE STATUS\G
关注以下字段:
Slave_IO_Running: 应该显示YesSlave_SQL_Running: 应该显示YesLast_IO_Error: 应该为空Last_SQL_Error: 应该为空
在 master2 上检查:
SHOW SLAVE STATUS\G
关注相同的字段,确保没有错误信息。
总结
通过以上简化步骤,你应该能够成功配置 MySQL 主主复制。以下是关键点总结:
-
使用
root用户登录:- 确保你以
root用户登录到 MySQL 服务器,以执行创建和授权用户的操作。
- 确保你以
-
编辑
my.ini配置文件:- 设置唯一的
server-id。 - 启用二进制日志。
- 允许其他主机连接。
- 设置自增 ID 增量和偏移量。
- 设置唯一的
-
重启 MySQL 服务:
- 保存配置文件后,重启 MySQL 服务以应用更改。
-
创建用于复制的用户:
- 使用
CREATE USER和GRANT命令创建并授予权限。
- 使用
-
获取二进制日志位置:
- 使用
SHOW MASTER STATUS;获取当前的二进制日志文件名和位置。
- 使用
-
配置
master1连接到master2:- 停止现有的复制线程(如果有)。
- 使用
CHANGE MASTER TO命令配置master1连接到master2。 - 启动
master1的复制进程并检查状态。
-
配置
master2连接到master1:- 停止现有的复制线程(如果有)。
- 使用
CHANGE MASTER TO命令配置master2连接到master1。 - 启动
master2的复制进程并检查状态。
-
检查复制状态:
- 使用
SHOW SLAVE STATUS\G命令检查复制线程的状态,确保Slave_IO_Running和Slave_SQL_Running都显示Yes,并且没有错误信息。
- 使用
希望这些简化步骤能帮助你在 Windows Server 2022 Datacenter 上顺利完成 MySQL 主主复制的配置!
相关文章:
MySQL 8.0 的主主复制(双向复制)
在 Windows Server 2022 Datacenter 上配置 MySQL 8.0 的主主复制(双向复制),步骤与 Linux 类似,但有一些特定的配置和路径需要注意。以下是详细的简化步骤: 1. 使用 root 用户登录 确保你以 root 用户登录到 MySQL …...
四、自然语言处理_03LSTM与GRU
0、前言 随着循环神经网络(RNN)在各种序列数据处理任务中被广泛应用,研究人员逐渐发现了其在处理长序列数据时会容易出现梯度消失(vanishing gradient)和梯度爆炸(exploding gradient)问题&…...
磁盘系列基础知识(一):硬盘;IDE;ATA;SATA;AHCI;SCSI;SAS
磁盘系列基础知识(一)硬盘 IDE ATA SATA AHCI SCSI SAS 硬盘厂家 西部数据Western Digital/WD. 希捷 SEAGATE、三星 SAMSUNG、东之 Toshiba、英特尔 Intel、金士顿 Kingston、闪迪 SanDisk、 英睿达 Crucial、浦科特 Plextor 硬盘类别 HDD (…...
taro小程序进入腾讯验证码
接入原因 昨天突然晚上有人刷我们公司的登录发送短信接口,紧急将小程序的验证码校验更新上去了 接下来就是我们的接入方法,其实很简单,不过有时候可能大家着急就没有仔细看文档,腾讯验证码文档微信小程序地址,注意这里…...
原子类相关
原子引用 JUC 并发包提供了: AtomicReferenceAtomicMarkableReferenceAtomicStampedReference AtomicReference 使用举例 public interface DecimalAccount {// 获取余额BigDecimal getBalance();// 取款void withdraw(BigDecimal amount);/*** 方法内会启动 10…...
RabbitMQ 客户端 连接、发送、接收处理消息
RabbitMQ 客户端 连接、发送、接收处理消息 一. RabbitMQ 的机制跟 Tcp、Udp、Http 这种还不太一样 RabbitMQ 服务,不是像其他服务器一样,负责逻辑处理,然后转发给客户端 而是所有客户端想要向 RabbitMQ服务发送消息, 第一步&a…...
Java Web 3 Axios Vue组件库
一 Ajax 1 同步 异步 2 原生Ajax 比较繁琐 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Documen…...
双目相机的标定,视差图,深度图,点云生成思路与实现。
该文档记录从双目相机标定到点云生成的所有过程,同时会附上代码。 代码直接能跑。https://github.com/stu-yzZ/stereoCamera 目录 大致思路如下: 一、相机标定 1、相机参数介绍 2、单目相机标定 3、双目相机标定 二、图片畸变矫正 三、极线矫正…...
【H2O2|全栈】MySQL的基本操作(三)
目录 前言 开篇语 准备工作 案例准备 多表查询 笛卡尔积 等值连接 外连接 内连接 自连接 子查询 存在和所有 含于 分页查询 建表语句 结束语 前言 开篇语 本篇继续讲解MySQL的一些基础的操作——数据字段的查询中的多表查询和分页查询,与单表查询…...
2、C++命名空间
命名空间 命名空间是一种用来避免命名冲突的机制; 原理是将一个全局的作用域分成一个个命名空间,每个命名空间是个单独的作用域,从而有效避免命名冲突。 注意:命名空间定义在全局 命名空间定义格式 使用: …...
Elemenu-UI时间日期单个组件,限制当前日期之后的时间
element的时间日期组件, type"datetime" ,当你设置了:picker-options"pickerOptions"之后 pickerOptions: { disabledDate(time) { return time.getTime() > Date.now(); }, }, 会发现,他只会限制日期,但不…...
flutter修改状态栏学习
在flutter中如何动态更改状态栏的颜色和风格。 前置知识点学习 AnnotatedRegion AnnotatedRegion 是 Flutter 中的一个小部件,用于在特定区域中提供元数据(metadata)以影响某些系统级的行为或外观。它通常用于改变系统 UI 的外观ÿ…...
解决Unity编辑器Inspector视图中文注释乱码
1.问题介绍 新创建一个脚本,用VS打开编辑,增加一行中文注释保存,在Unity中找到该脚本并选中,Inspector视图中预览的显示内容,该中文注释显示为乱码,如下图所示: 2.图示解决步骤 按上述步骤操作…...
关于csgo的游戏作弊与封禁
关于csgo的游戏作弊与封禁 一.关于作弊 什么叫作弊? 1.换肤,换库存 2.各种参(回溯,自瞄,透视,急停,连跳,假身,子弹跟踪等) 3.某一部分更改游戏内存&…...
严格单元测试造就安全软件
在信息技术迅速发展的今天,软件在各个行业中扮演着至关重要的角色,尤其是在汽车行业,其中软件的可靠性和安全性直接影响到人们的生命安全。软件缺陷所带来的潜在风险不容小觑,尤其在涉及到自动驾驶和车辆控制等关键系统时…...
ubuntu 根分区逻辑卷扩容
1、虚拟机关机通过管理界面给磁盘扩容。 rootcurtis:/home/curtis/git_code# pvdisplay--- Physical volume ---PV Name /dev/vda3VG Name ubuntu-vgPV Size <239.00 GiB / not usable 0Allocatable yes (but full)PE…...
如何查看电脑生产日期
查看电脑的生产日期通常可以通过以下方法实现,具体方式取决于操作系统和电脑类型: 方法 1:检查电脑 BIOS 生产日期通常记录在 BIOS 中。可以通过以下步骤查看: 重启电脑并进入 BIOS: 启动时按下特定的键(…...
MAC M1 mysql 8.0 如何修改root用户密码
关闭mysql服务 使用brew方式安装,可以通过一下命令关闭 brew services stop mysql使用安装包安装的方式 可以选择🍎->系统偏好设置->最下方单机MySQL图标->stop mysql server 启动 MySQL 到安全模式 sudo mysqld_safe --skip-grant-tables …...
漫画之家系统:Spring Boot框架下的漫画版权保护
摘 要 随着信息技术和网络技术的飞速发展,人类已进入全新信息化时代,传统管理技术已无法高效,便捷地管理信息。为了迎合时代需求,优化管理效率,各种各样的管理系统应运而生,各行各业相继进入信息管理时代&a…...
在 MacOS 上为 LM Studio 更换镜像源
在 MacOS 之中使用 LM Studio 部署本地 LLM时,用户可能会遇到无法下载模型的问题。 一般的解决方法是在 huggingface.co 或者国内的镜像站 hf-mirror.com 的项目介绍卡页面下载模型后拖入 LM Studio 的模型文件夹。这样无法利用 LM Studio 本身的搜索功能。 本文将…...
如何用开源工具LibreDWG解决CAD文件格式兼容性问题?
如何用开源工具LibreDWG解决CAD文件格式兼容性问题? 【免费下载链接】libredwg Official mirror of libredwg. With CI hooks and nightly releases. PRs ok 项目地址: https://gitcode.com/gh_mirrors/li/libredwg 你是否曾遇到过不同CAD软件之间无法互相打…...
UML类图实战:从设计到代码的精准映射
1. 为什么需要从UML类图到代码的精准映射? 第一次接触UML类图时,我总觉得它像是一张"纸上谈兵"的设计稿。直到在实际项目中踩过几次坑才明白,类图与代码之间的精准映射能力,是区分普通程序员和架构师的关键技能之一。 …...
华测RTK静态数据解算保姆级教程:从CHC Geomatics Office 2安装到平差报告导出
华测RTK静态数据解算全流程实战指南:从软件配置到精度优化 第一次接触华测RTK静态解算时,面对满屏的专业术语和复杂参数,不少同行都有过这样的困惑:为什么同样的数据,别人处理出来的结果总能一次性通过验收࿰…...
Lusca源码解析:深入理解Express安全中间件的实现原理
Lusca源码解析:深入理解Express安全中间件的实现原理 【免费下载链接】lusca Application security for express apps. 项目地址: https://gitcode.com/gh_mirrors/lu/lusca Lusca是一款专为Express应用设计的安全中间件,它集成了多种安全防护机制…...
从“让大模型回答问题“到智能决策:LangGraph 构建 AI Agent 的核心奥秘
本文深入解析了 AI Agent 的核心价值在于判断与决策,而非简单回答问题。LangGraph 作为图式工作流框架,通过 State(共享状态)、Node(处理节点)、Router(决策分支)的设计,…...
YOLOv8在Jetson上导出TensorRT引擎(.engine)全流程实操:从ONNX转换到INT8/FP16量化加速
YOLOv8在Jetson平台上的TensorRT引擎部署与量化加速实战指南 当目标检测模型需要部署到边缘计算设备时,性能优化往往成为最关键的技术挑战。本文将深入探讨如何将YOLOv8模型高效转换为Jetson平台专用的TensorRT引擎,并通过INT8/FP16量化技术实现推理速度…...
XC7Z010-2CLG400I Xilinx Zynq-7000 FPGA
XC7Z010-2CLG400I 可以理解为一颗“ARM 处理器 FPGA 可编程逻辑”合在一起的 SoC。它属于 Xilinx (赛灵思 AMD )Zynq-7000 家族里的 Z-7010 器件,核心特点就是把 双核 Arm Cortex-A9 MPCore 处理系统(PS) 和 7 系列可编程逻辑&am…...
嵌入式Linux驱动开发pinctrl篇(1)——从寄存器到子系统:驱动演进之路
嵌入式Linux驱动开发pinctrl篇(1)——从寄存器到子系统:驱动演进之路 仓库已经开源!所有教程,主线内核移植,跑新版本imx-linux/uboot都在这里,或者一起来尝试跑7.0的Linux!欢迎各位大…...
用LAMMPS做材料分析?手把手教你用Ovito绘制应力、温度、速度云图(附完整脚本)
从LAMMPS到Ovito:材料模拟数据可视化的全流程实战指南 在计算材料科学领域,分子动力学模拟产生的海量数据如何转化为直观、可发表的科学图表,一直是研究者面临的挑战。本文将系统介绍从LAMMPS模拟到Ovito可视化的完整工作流,重点解…...
Rust 服务器存档管理 地图配置指南
对于想要自建游戏服务器的玩家,云鸢互联是一个不错的专业联机平台选择。它提供稳定、低延迟且724小时在线的服务器环境,助你轻松打造专属游戏世界。平台主打极致的新手友好——全图形化控制面板,无需编写代码,也无需掌握Linux命令…...
