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

或者使用服务管理器:

  1. 打开“服务”管理控制台 (services.msc)。
  2. 找到 MySQL80 服务。
  3. 右键点击并选择“重新启动”。
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;

记下 FilePosition 的值,例如:

+------------------+----------+--------------+------------------+
| 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

或者使用服务管理器:

  1. 打开“服务”管理控制台 (services.msc)。
  2. 找到 MySQL80 服务。
  3. 右键点击并选择“重新启动”。
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;

记下 FilePosition 的值,例如:

+------------------+----------+--------------+------------------+
| 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_FILEMASTER_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_FILEMASTER_LOG_POS 替换为之前记录的二进制日志文件名和位置。

6. 检查复制状态

在每台服务器上检查复制状态,确保一切正常。

master1 上检查:
SHOW SLAVE STATUS\G

关注以下字段:

  • Slave_IO_Running: 应该显示 Yes
  • Slave_SQL_Running: 应该显示 Yes
  • Last_IO_Error: 应该为空
  • Last_SQL_Error: 应该为空
master2 上检查:
SHOW SLAVE STATUS\G

关注相同的字段,确保没有错误信息。

总结

通过以上简化步骤,你应该能够成功配置 MySQL 主主复制。以下是关键点总结:

  1. 使用 root 用户登录:

    • 确保你以 root 用户登录到 MySQL 服务器,以执行创建和授权用户的操作。
  2. 编辑 my.ini 配置文件:

    • 设置唯一的 server-id
    • 启用二进制日志。
    • 允许其他主机连接。
    • 设置自增 ID 增量和偏移量。
  3. 重启 MySQL 服务:

    • 保存配置文件后,重启 MySQL 服务以应用更改。
  4. 创建用于复制的用户:

    • 使用 CREATE USERGRANT 命令创建并授予权限。
  5. 获取二进制日志位置:

    • 使用 SHOW MASTER STATUS; 获取当前的二进制日志文件名和位置。
  6. 配置 master1 连接到 master2:

    • 停止现有的复制线程(如果有)。
    • 使用 CHANGE MASTER TO 命令配置 master1 连接到 master2
    • 启动 master1 的复制进程并检查状态。
  7. 配置 master2 连接到 master1:

    • 停止现有的复制线程(如果有)。
    • 使用 CHANGE MASTER TO 命令配置 master2 连接到 master1
    • 启动 master2 的复制进程并检查状态。
  8. 检查复制状态:

    • 使用 SHOW SLAVE STATUS\G 命令检查复制线程的状态,确保 Slave_IO_RunningSlave_SQL_Running 都显示 Yes,并且没有错误信息。

希望这些简化步骤能帮助你在 Windows Server 2022 Datacenter 上顺利完成 MySQL 主主复制的配置!

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

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

相关文章

Java线程的interrupt中断、wait-notify/all(源码级分析)

实例方法: interrupt()方法是设置结束阻塞(sleep、wait等),并且设置中断标记true isInterrupted()判断当前是否中断 静态方法: Thread.interrupted():调用这个方法的线程中断标记位还原为false 那么好,既然上面的方法作用是清…

Burp Suite 实战指南:Proxy 捕获与修改流量、HTTP History 筛选与分析

声明! 学习视频来自B站up主 **泷羽sec** 有兴趣的师傅可以关注一下,如涉及侵权马上删除文章,笔记只是方便各位师傅的学习和探讨,文章所提到的网站以及内容,只做学习交流,其他均与本人以及泷羽sec团队无关&a…

12月第1周AI资讯

阅读时间:3-4min 更新时间:2024.12.2-2024.12.6 目录 OpenAI CEO Sam Altman 预告“12天OpenAI”系列活动 腾讯HunyuanVideo:130亿参数的开源视频生成模型 李飞飞的World Labs发布空间智能技术预览版 中科院联手腾讯打造“AI带货王”AnchorCrafter OpenAI CEO Sam Alt…

从零开始学TiDB(1) 核心组件架构概述

首先TiDB深度兼容MySQL 5.7 1. TiDB Server SQL语句的解析与编译:首先一条SQL语句最先到达的地方是TiDB Server集群,TiDB Server是无状态的,不存储数据,SQL 发过来之后TiDB Server 负责 解析,优化,编译 这…

记录一次使用git无权限的问题排查

正常的配置了公私钥之后,在gitlab中也存储了配对的公钥,但当使用git clone 时,总是报无权限 由于在这台机器中添加了多个公私钥,有点复杂,我们可以使用命令 ssh -vvvT 调试一下 ssh -vvvT yourGitlabAddr

python调用GPT-4o实时音频 Azure OpenAI GPT-4o Audio and /realtime

发现这块网上信息很少,记录一下 微软azure入口 https://learn.microsoft.com/zh-cn/azure/ai-services/openai/realtime-audio-quickstart?pivotsprogramming-language-ai-studio sdk文档 https://github.com/azure-samples/aoai-realtime-audio-sdk?tabread…

fastadmin 后台插件制作方法

目录 一:开发流程 二:开发过程 (一):后台功能开发 (二):功能打包到插件目录 (三):打包插件 (四):安装插件…

Kafka单机及集群部署及基础命令

目录 一、 Kafka介绍1、kafka定义2、传统消息队列应用场景3、kafka特点和优势4、kafka角色介绍5、分区和副本的优势6、kafka 写入消息的流程 二、Kafka单机部署1、基础环境2、iptables -L -n配置3、下载并解压kafka部署包至/usr/local/目录4、修改server.properties5、修改/etc…

Docker部署的gitlab升级的详细步骤(升级到17.6.1版本)

文章目录 一、Gitlab提示升级信息二、老版本的docker运行gitlab命令三、备份老版本Gitlab数据四、确定升级路线五、升级(共分3个版本升级)5.1 升级第一步(17.1.2 > 17.3.7)5.2 升级第二步(17.3.7 > 17.5.3)5.3 升级第三步(17.5.3 > 17.6.1) 六、web端访问gitlab服务 一…

在Java的xml的sql语句里面的某一个参数是list集合的时候

经常在Java里面,遇到这样的问题,sql的一个查询语句,它的某一个参数是一个List集合,然而,在xml.mapper文件里面的时候,不知道如何去组成这个查询语句,不知道兄弟们是否经常忘记如何去写这个语句&…

前端技术(23) : 聊天页面

来源: GPT生成之后微调 效果图 HTML代码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>聊天</t…

内存图及其画法

所有的文件都存在硬盘上&#xff0c;首次使用的时候才会进入内存 进程&#xff1a;有自己的Main方法&#xff0c;并且依赖自己Main运行起来的程序。独占一块内存区域&#xff0c;互不干扰。内存中有一个一个的进程。 操作系统只认识c语言。操作系统调度驱动管理硬件&#xff0…

树与图深度优先遍历——acwing

题目一&#xff1a;树的重心 846. 树的重心 - AcWing题库 分析 采用暴力枚举&#xff0c;试探每个点&#xff0c;除去之后&#xff0c;连通分量最大值是多少&#xff0c; 各个点的最大值找最小的 因为可以通过 dfs 来得到 根u以下点数&#xff0c;以及可以求各分树的点数&am…

Qt Qtablewidget 标题 QHeaderView 增加可选框 QcheckBox

创建自定义QHeaderView #pragma once#include <QObject> #include <QHeaderView> #include <QPainter> #include <QMouseEvent>class SSHeaderView : public QHeaderView {Q_OBJECTprivate:bool isChecked;int m_checkColIdx; public:SSHeaderView(i…

Data Uncertainty Learning in Face Recognition 论文阅读

Data Uncertainty Learning in Face Recognition 论文阅读 Abstract1. Introduction2. Related Work3. Methodology3.1. Preliminaries3.2. Classification-based DUL for FR3.3. Regression-based DUL for FR3.4. Discussion of Related Works 4. Experiments4.1. Datasets an…

基础算法——搜索与图论

搜索与图论 图的存储方式2、最短路问题2.1、Dijkstra算法&#xff08;朴素版&#xff09;2.2、Dijkstra算法&#xff08;堆优化版&#xff09;2.3、Bellman-Ford算法2.4、SPFA求最短路2.5、SPFA判负环2.6、Floyd算法 图的存储方式 2、最短路问题 最短路问题可以分为单源最短路…

典型常见的知识蒸馏方法总结一

来源&#xff1a;https://github.com/HobbitLong/RepDistiller收录的方法 NeurIPS2015: Distilling the Knowledge in a Neural Network 知识蒸馏开山之作&#xff0c;从logits中蒸馏知识&#xff0c;KL散度损失 ICLR2015&#xff1a;FitNets: Hints for Thin Deep Nets A h…

十、软件设计架构-微服务-服务调用Feign

文章目录 前言一、Feign介绍1. 什么是Feign2. 什么是Http客户端3. Feign 和 OpenFeign 的区别 二、Feign底层原理三、Feign工作原理详解1. 动态代理机制2. 动态代理的创建过程3. 创建详细流程4. FeignClient属性 四、Feign使用1. 常规调用2.日志打印3. 添加Header 前言 服务调…

在 LS-DYNA 中将应力转换为用户定义的坐标系

介绍 通常&#xff0c;使用 LS-DYNA 或 Ansys Mechanical 等仿真工具解决工程问题需要将张量结果与解析解进行比较。一个这样的例子是加压圆柱体&#xff0c;其中圆周应力或环状应力是感兴趣的主要应力度量。例如&#xff0c;如果对具有复杂端部处理的几何结构进行此类仿真&am…

树莓集团是如何链接政、产、企、校四个板块的?

树莓集团作为数字影像行业的积极探索者与推动者&#xff0c;我们通过多维度、深层次的战略举措&#xff0c;将政、产、企、校四个关键板块紧密链接在一起&#xff0c;实现了资源的高效整合与协同发展&#xff0c;共同为数字影像产业的繁荣贡献力量。 与政府的深度合作政府在产业…