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

[实操]Mysql8 InnoDB引擎主从配置三节点操作流程

在发该文章之前,已有[保姆级]mysql8+Docker主从配置步骤这篇文章说明如何使用Mysql8+docker在Ubuntu 24.04下完成搭建环境,因此这方面不再赘述,可跳转至该文章查看详细搭建步骤,此文主要讲解如何实现Mysql InnoDB 主从配置三节点。

以下是基于Mysql8 InnoDB引擎的三节点主从配置操作流程,适用于 MySQL 8.0 及以上版本。

一、环境准备

  • 三台服务器:确保有三台服务器(可以是物理机、虚拟机或 Docker 容器),分别作为主节点(master)和从节点(slave1、slave2)。
  • 网络互通:确保三台服务器之间网络畅通,能够相互访问。
  • MySQL 安装:在每台服务器上安装相同版本的 MySQL 8.0 或更高版本。
  • 时间同步:配置三台服务器的时间同步,避免因时间差异导致的问题。

二、主节点(master)配置

  1. 编辑配置文件:找到 MySQL 的配置文件(通常是/etc/mysql/mysql.conf.d/mysqld.cnf/etc/my.cnf),添加以下内容:

    [mysqld]
    server-id=101
    log_bin=mysql-bin
    binlog_format=row
    expire_logs_days=7
    max_connections=200
    
    • server-id:设置唯一的服务器 ID,在整个复制环境中必须唯一。
    • log_bin:启用二进制日志,并指定日志文件的前缀。
    • binlog_format:设置二进制日志的格式为row,表示以行级别记录变更。
    • expire_logs_days:设置二进制日志的自动删除天数。
    • max_connections:设置最大连接数。
  2. 重启 MySQL 服务:保存配置文件后,重启 MySQL 服务以应用更改:

    sudo systemctl restart mysql
    
  3. 创建复制用户:登录 MySQL,执行以下命令创建一个用于复制的用户并授予权限:

    CREATE USER 'repl'@'%' IDENTIFIED BY 'YourReplicationPassword';
    GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';
    FLUSH PRIVILEGES;
    
    • 'repl':复制用户的用户名。
    • 'YourReplicationPassword':复制用户的密码。
  4. 记录二进制日志位置:执行以下命令查看当前二进制日志文件名和位置,稍后从节点配置会用到:

    SHOW MASTER STATUS;
    

    输出示例:

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

三、从节点(slave1、slave2)配置

  1. 编辑配置文件:同样找到每个从节点的 MySQL 配置文件,添加以下内容:

    [mysqld]
    server-id=102
    log_bin=mysql-bin
    binlog_format=row
    read_only=ON
    
    • 对于第二个从节点(slave2),将server-id设置为103,其他配置相同。
  2. 重启 MySQL 服务:保存配置文件后,重启 MySQL 服务。

  3. 配置复制连接:登录每个从节点的 MySQL,执行以下命令配置复制连接:

    CHANGE REPLICATION SOURCE TO
    SOURCE_HOST='master_ip',
    SOURCE_USER='repl',
    SOURCE_PASSWORD='YourReplicationPassword',
    SOURCE_LOG_FILE='mysql-bin.000001',
    SOURCE_LOG_POS=154;
    
    • SOURCE_HOST:主节点的 IP 地址。
    • SOURCE_USERSOURCE_PASSWORD:之前创建的复制用户名和密码。
    • SOURCE_LOG_FILESOURCE_LOG_POS:从主节点获取的二进制日志文件名和位置。
  4. 启动复制:执行以下命令启动复制进程:

    START REPLICA;
    
  5. 验证复制状态:执行以下命令检查复制状态:

    SHOW REPLICA STATUS\G;
    

    确保Replica_IO_RunningReplica_SQL_Running都为Yes,表示复制正常。

四、测试主从复制

  1. 在主节点插入数据:在主节点的数据库中插入一些测试数据,例如:

    CREATE DATABASE testdb;
    USE testdb;
    CREATE TABLE testtable (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(50));
    INSERT INTO testtable (name) VALUES ('test');
    
  2. 检查从节点数据:在每个从节点的数据库中检查是否成功复制了主节点的数据:

    USE testdb;
    SELECT * FROM testtable;
    

    如果数据一致,说明主从复制配置成功。

五、监控与维护

  • 定期检查复制状态:定期在每个从节点上执行SHOW REPLICA STATUS\G;,确保复制持续正常运行。
  • 监控性能:使用 MySQL 的性能监控工具(如mysqladminSHOW STATUS等)监控主从节点的性能,及时发现并解决潜在问题。
  • 备份与恢复:定期备份主节点的数据,并测试从节点的恢复能力,以应对可能出现的故障。

通过以上步骤,可以成功配置一个基于 MySQL InnoDB 的三节点主从复制环境,实现数据的高可用性和可靠性。

有疏漏或不足之处,欢迎各位看官随时拍砖。

相关文章:

  • 论文阅读笔记:Denoising Diffusion Implicit Models
  • 消息队列ActiveMQ、RabbitMQ、RocketMQ、Kafka对比分析和选型
  • 【杂谈】Godot4.4 对象池(附脚本)
  • 盖泽 寻边器 帮助类
  • 开发中后端返回下划线数据,要不要统一转驼峰?
  • 【HTML5游戏开发教程】零基础入门合成大西瓜游戏实战 | JS物理引擎+Canvas动画+完整源码详解
  • C# BULK INSERT导入大数据文件数据到SqlServer
  • centos7.9镜像源及Python引入ssl问题处理
  • OLED中英文混合显示
  • 如何设计一个处理物联网设备数据流的后端系统。
  • SpringMVC 配置详解
  • 《深度剖析:DevEco Studio 如何实现人工智能模型的高效可视化开发》
  • 交换机(access端口)
  • Vue中的状态管理器Vuex被Pinia所替代-上手使用指南
  • 数据预处理习题
  • EtherCAT转CANopen配置CANopen侧的PDO映射
  • JavaScript性能优化实战手册:从V8引擎到React的毫秒级性能革命
  • 大数据平台各组件功能与协同作用全解析
  • Python Excel表格数据对比工具
  • Spring MVC配置详解:从历史到实战
  • 首部关于民营经济发展的基础性法律,有何亮点?专家解读
  • 国务院食安办:加强五一假期食品生产、销售、餐饮服务环节监管
  • 南京106亿元成交19宗涉宅地块:建邺区地块楼面单价重回4.5万元
  • 央行4月开展12000亿元买断式逆回购操作
  • 演员刘美含二手集市被曝售假,本人道歉
  • 柳州警方通报临牌车撞倒行人:扣留涉事车辆,行人无生命危险