MySQL8.0主从复制集群的搭建


MySQL主从复制的原理

MySQL

MySQL主从复制(Master-Slave Replication)是一种数据复制技术,允许将一个MySQL数据库服务器(Master,主服务器)的数据复制到一个或多个 MySQL数据库服务器(Slave,从服务器)。主从复制的主要目的是实现数据的冗余备份、读写分离、负载均衡以及高可用性。其基本原理如下:

当Master节点上的数据发生改动时,Master节点会将改动写入二进制日志Binlog中。Slave服务器每隔一段时间就会检查Master上的Binlog是否发生改变,若发生改变则会开启一个I/O线程(I/O Thread)向Master请求新增的日志内容。Master节点接收到请求后会为每一个Slave节点上的I/O线程启动一个dump线程,用于向其发送二进制日志,Slave上的I/O线程接收到dump线程发送的日志后会保存在本地的中继日志(Relay Log)中,Slave节点上的SQL线程(SQL Thread)再从中继日志中读取二进制日志并在本地回放,这样就使得本地数据和Master节点数据保持了一致性。

MySQL8.0主从复制集群的搭建

集群环境准备

1、一台MySQL8.0主服务器,两台MySQL8.0从服务器。配置如下:

  • Master:主服务器,IP地址为192.168.238.61。
  • Slave1:从服务器,IP地址为192.168.238.62。
  • Slave2:从服务器,IP地址为192.168.238.63。

2、开放三台服务器的3306端口。

MySQL

主从复制配置

1、开启三台服务器的二进制日志功能并设置ID,主要配置项如下:

  • server−id:节点编号,主从服务器集群中唯一,可使用IP地址尾数以避免冲突。
  • log−bin:自定义二进制日志文件名称,主服务器配置即可。

1.1、Master服务器配置。

MySQL

1.2、Slave1服务器配置。

MySQL

1.3、Slave2服务器配置。

MySQL

2、所有服务器配置完成后重启MySQL服务。

MySQL

3、登录Master服务器,创建用户并查看当前状态。

3.1、在Master服务器上为Slave服务器创建用户用于读取Binlog。

MySQL

3.2、在Master服务器上给创建的用户赋予日志复制权限。

  • replication slave:允许用户在从机上复制日志。
  • replication client:允许用户使用show master status、show slave status等命令查看复制状态。
MySQL

3.3、使用flush命令刷新用户权限。

MySQL

3.4、查看Master服务器上的日志状态:File为日志文件名称,Position为日志当前写入位置。

MySQL

4、登录Slave服务器,设置同步参数,主要参数如下:

  • master_host:Master服务器的IP地址。
  • master_user:Master服务器登录用户名。
  • master_password:Master服务器登录密码。
  • master_log_file:二进制日志名称,在Master服务器通过Show master status查看。
  • master_log_pos:二进制日志当前写入位置,在Master服务器通过Show master status查看。

4.1、在Slave1和Slave2服务器上使用change master命令设置主从日志同步参数。

MySQL

4.2、在Slave1和Slave2服务器上开启日志同步。

MySQL

4.3、查看Slave服务器状态,IO线程与SQL线程都为yes则表示配置成功。

  • Slave_IO_Running:IO线程的运行状态。
  • Slave_SQL_Running:SQL线程的运行状态。
MySQL

主从复制测试

1、登录Master服务器,创建数据库、数据表并插入数据。

MySQL

2、登录Slave1和Slave2服务器,查看数据。

MySQL

发表评论

评论数量:0