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

[实操]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 的三节点主从复制环境,实现数据的高可用性和可靠性。

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


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

相关文章:

  • LeetCode热题100_最长连续序列
  • 保姆级 STM32 HAL 库外部中断教学
  • 使用 Ansible 通过源码编译安装 Nginx 的完整步骤。
  • CSS网格布局Grid
  • C# WinForms 中的回调:从性能到技术层面的全面解析
  • Netty源码—3.Reactor线程模型四
  • 【Qt】QDialog对话框
  • SQL语句---DDL
  • 买卖股票的最佳时机 IV (leetcode 188)
  • 基于SpringBoot的汽车租赁系统
  • 消息队列ActiveMQ、RabbitMQ、RocketMQ、Kafka对比分析和选型
  • 第八:在Go语言项目中使用Zap日志库
  • vue js给元素动态添加动画样式, 改变背景色
  • 单片机 - RAM 与内存、ROM 与硬盘 之间的详细对比总结
  • 【后端开发面试题】每日 3 题(二十)
  • 计算机网络 - OSI 七层模型
  • ffmpeg+QOpenGLWidget显示视频
  • 基于深度学习的自动驾驶目标检测系统
  • 带你了解Java无锁并发CAS
  • AWS AI认证考试中经常提及几个重要的工具介绍