当前位置: 首页 > news >正文

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.lryc.cn/news/498236.html

相关文章:

  • 四、自然语言处理_03LSTM与GRU
  • 磁盘系列基础知识(一):硬盘;IDE;ATA;SATA;AHCI;SCSI;SAS
  • taro小程序进入腾讯验证码
  • 原子类相关
  • RabbitMQ 客户端 连接、发送、接收处理消息
  • Java Web 3 Axios Vue组件库
  • 双目相机的标定,视差图,深度图,点云生成思路与实现。
  • 【H2O2|全栈】MySQL的基本操作(三)
  • 2、C++命名空间
  • Elemenu-UI时间日期单个组件,限制当前日期之后的时间
  • flutter修改状态栏学习
  • 解决Unity编辑器Inspector视图中文注释乱码
  • 关于csgo的游戏作弊与封禁
  • 严格单元测试造就安全软件
  • ubuntu 根分区逻辑卷扩容
  • 如何查看电脑生产日期
  • MAC M1 mysql 8.0 如何修改root用户密码
  • 漫画之家系统:Spring Boot框架下的漫画版权保护
  • 在 MacOS 上为 LM Studio 更换镜像源
  • Nginx配置https(Ubuntu、Debian、Linux、麒麟)
  • 「Mac畅玩鸿蒙与硬件40」UI互动应用篇17 - 照片墙布局
  • VMware Workstation 安装Ubuntu 系统(图文步骤)
  • mybatis用pagehelper 然后用CountJSqlParser45,发现自己手写的mapper查询效率很慢
  • 【优选算法 二分查找】二分查找入门详解:二分查找 & 在排序数组中查找元素的第一个和最后一个位置
  • WPF编写工业相机镜头选型程序
  • 网络安全内容整理二
  • 解决git did not exit cleanly (exit code 128)问题
  • Linux入门攻坚——40、Linux集群系统入门-lvs(1)
  • momentum 和 weight_decay 的区别
  • Vue 3 + TypeScript进阶用法