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

Windows 上的 MySQL 8.4.3 和 WSL(Ubuntu)的 MySQL 8.0.40 之间配置 主从同步

Windows 上的 MySQL 8.4.3WSL(Ubuntu)的 MySQL 8.0.40 之间配置 主从同步(Master-Slave Replication) 的过程略有不同,因为两者的 MySQL 版本和环境存在差异。以下是详细步骤,帮助你完成跨平台的主从复制配置。


📝 前提条件

  1. 主服务器(Master):Windows 上的 MySQL 8.4.3
  2. 从服务器(Slave):WSL Ubuntu 上的 MySQL 8.0.40
  3. 确保主从服务器之间网络可以互相访问。

🚀 步骤 1:在主服务器(Windows MySQL 8.4.3)上配置

📌 1. 修改 MySQL 配置文件

  1. 打开 my.ini 文件,路径通常为:

    C:\ProgramData\MySQL\MySQL Server 8.4\my.ini
    
  2. 添加或修改以下配置:

    [mysqld]
    server-id=1
    log-bin=mysql-bin
    binlog-format=row
    
    • server-id=1:主服务器的唯一标识。
    • log-bin=mysql-bin:启用二进制日志。
    • binlog-format=row:推荐的二进制日志格式。
  3. 保存配置文件后,重启 MySQL 服务:

    net stop mysql
    net start mysql
    

📌 2. 创建复制用户

在主服务器上,登录 MySQL 并创建一个用于复制的用户:

CREATE USER 'replica_user'@'%' IDENTIFIED BY 'your_password';
GRANT REPLICATION SLAVE ON *.* TO 'replica_user'@'%';
FLUSH PRIVILEGES;

📌 3. 获取二进制日志信息

运行以下命令,获取主服务器的二进制日志文件名和位置:

SHOW BINARY LOG STATUS;

示例输出:

+------------------+----------+
| Log_name         | Position |
+------------------+----------+
| mysql-bin.000001 | 154      |
+------------------+----------+

记下 Log_namePosition 的值。


🚀 步骤 2:在从服务器(WSL MySQL 8.0.40)上配置

📌 1. 修改 MySQL 配置文件

  1. 在 WSL Ubuntu 中,编辑 my.cnf 文件:

    sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
    
  2. 添加或修改以下配置:

    [mysqld]
    server-id=2
    relay-log=relay-log
    
    • server-id=2:从服务器的唯一标识。
    • relay-log=relay-log:启用中继日志。
  3. 保存并退出,然后重启 MySQL 服务:

    sudo systemctl restart mysql
    

📌 2. 配置主从同步

登录从服务器的 MySQL:

mysql -u root -p

执行以下命令,设置主服务器的信息:

CHANGE REPLICATION SOURCE TO
  SOURCE_HOST='your_master_ip',
  SOURCE_USER='replica_user',
  SOURCE_PASSWORD='your_password',
  SOURCE_LOG_FILE='mysql-bin.000001',
  SOURCE_LOG_POS=154;
  • your_master_ip:主服务器的 IP 地址(Windows 的本地 IP 地址)。
  • replica_useryour_password:主服务器上创建的复制用户和密码。
  • mysql-bin.000001:主服务器的二进制日志文件名。
  • 154:主服务器的二进制日志位置。

📌 3. 启动从服务器的复制

在从服务器上执行以下命令:

START REPLICA;

🚀 步骤 3:验证主从同步状态

📌 在从服务器上检查复制状态

在从服务器上执行:

SHOW REPLICA STATUS\G;

检查以下关键字段:

字段说明
Replica_IO_Running应为 Yes
Replica_SQL_Running应为 Yes
Last_Error应为空

如果 Replica_IO_RunningReplica_SQL_Running 都是 Yes,说明主从复制已正常运行。


步骤 4:测试主从同步

📌 在主服务器上创建一个测试数据库

在主服务器上执行:

CREATE DATABASE test_db;

📌 在从服务器上验证

在从服务器上执行:

SHOW DATABASES;

如果你在从服务器上看到了 test_db,说明主从复制已成功。


🛠 常见问题排查

问题解决方法
无法连接主服务器确保主服务器的防火墙允许从服务器的 IP 访问 MySQL 端口
Replica_IO_Running: No确认主服务器的 IP 地址和用户权限设置正确
从服务器显示错误日志检查 SHOW REPLICA STATUS\GLast_Error 字段

🔧 防火墙配置(Windows)

如果 Windows 防火墙阻止了 WSL 的访问,需要允许 MySQL 3306 端口的入站流量:

New-NetFirewallRule -DisplayName "Allow MySQL 3306" -Direction Inbound -Protocol TCP -LocalPort 3306 -Action Allow

🎯 总结

主服务器从服务器
Windows MySQL 8.4.3WSL MySQL 8.0.40
server-id=1server-id=2
SHOW BINARY LOG STATUS;SHOW REPLICA STATUS\G;
使用 CHANGE REPLICATION SOURCE TO 替代旧的 CHANGE MASTER TO 命令
#主库
SHOW BINARY LOG STATUS;


CREATE USER 'root'@'%' IDENTIFIED BY 'root';
GRANT REPLICATION SLAVE ON *.* TO 'root'@'%';

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root';
FLUSH PRIVILEGES;

SHOW PLUGINS;


#从库
SELECT VERSION();


CHANGE REPLICATION SOURCE TO
  SOURCE_HOST='192.168.110.206',
  SOURCE_USER='root',
  SOURCE_PASSWORD='root',
  SOURCE_LOG_FILE='KONG-bin.000016',
  SOURCE_LOG_POS=15597;

#启动io
START REPLICA;
#查看状态
SHOW REPLICA STATUS;

#停止io
STOP REPLICA IO_THREAD;

select * from s_sys_user;


http://www.kler.cn/a/505549.html

相关文章:

  • TCP 连接状态标识 | SYN, FIN, ACK, PSH, RST, URG
  • Android中下载 HAXM 报错 HAXM installation failed,如何解决?
  • Unity中实现倒计时结束后干一些事情
  • 【如何从0到1设计测试用例使用Fiddler完成弱网测试】
  • Docker官网安装
  • fastadmin插件wanlshop使用方法
  • linux系统监视(centos 7)
  • 数据结构9——二叉搜索树
  • 使用Struts2遇到的Context[项目名称]启动失败问题解决(Java Web学习笔记)
  • 虚拟线程JDK与Spring Core Reactor
  • 2025windows环境下安装RabbitMQ
  • Frida调试il2cpp的程序打印原生c#对象为json
  • Qt 5.14.2 学习记录 —— 십이 QLineEdit、QTextEdit
  • win32汇编环境,窗口程序中组合框的应用举例
  • 如何将一个数组转换为字符串?
  • 01、kafka知识点综合
  • [Linux]Docker快速上手操作教程
  • LevelDB 源码阅读:如何优雅地合并写入和删除操作
  • 【MySQL学习笔记】MySQL存储过程
  • 通信与网络安全管理之ISO七层模型与TCP/IP模型
  • 计算机后端学习路径(精华版)
  • 仪式感在会员体系建设中的重要性及AI智能名片2+1链动模式S2B2C商城小程序的应用研究
  • 神经网络基础-网络优化方法
  • Lua调用C#
  • YOLOv11 OBB 任务介绍与数据集构建要求及训练脚本使用指南
  • Linux——进程信号