MySQL8 重建主从

在数据库系统中,主从复制是一个常用的技术手段,通过建立主从关系,可以实现数据的备份、灾难恢复、读写分离等功能。本文将介绍如何在 MySQL8 中进行主从复制的重建过程,并提供相应的代码示例。

1. 环境准备

在开始之前,我们需要准备两台服务器,一台作为主服务器(Master),另一台作为从服务器(Slave)。确保主从服务器之间可以通过网络互相访问。

2. 配置主服务器

首先,在主服务器上进行相应的配置。打开主服务器上的 MySQL 配置文件 my.cnf,找到并编辑以下参数:

# 开启二进制日志
log-bin=mysql-bin
# 设置唯一的服务器标识
server-id=1

重启主服务器,使配置生效。

3. 创建用于复制的账号

在主服务器上,创建一个用于复制的账号,并赋予相应的权限。可以使用以下 SQL 语句进行操作:

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

请注意将 password 替换为实际的密码。

4. 查看主服务器状态

在主服务器上,执行以下 SQL 语句,查看当前的二进制日志文件名和位置:

SHOW MASTER STATUS;

记录下结果中的 FilePosition 值,稍后在从服务器上会用到。

5. 配置从服务器

接下来,在从服务器上进行相应的配置。打开从服务器上的 MySQL 配置文件 my.cnf,找到并编辑以下参数:

# 设置唯一的服务器标识
server-id=2

重启从服务器,使配置生效。

6. 启动主从复制

在从服务器上,执行以下 SQL 语句,配置主从复制:

CHANGE MASTER TO
  MASTER_HOST='主服务器地址',
  MASTER_USER='replication',
  MASTER_PASSWORD='password',
  MASTER_LOG_FILE='主服务器上的 File 值',
  MASTER_LOG_POS=主服务器上的 Position 值;
START SLAVE;

请将 主服务器地址password主服务器上的 File 值主服务器上的 Position 值 替换为实际的值。

7. 验证主从复制

在从服务器上,执行以下 SQL 语句,查看从服务器的状态:

SHOW SLAVE STATUS \G;

如果复制过程正常,可以在结果中的 Slave_IO_RunningSlave_SQL_Running 字段中看到 Yes

8. 测试主从复制

在主服务器上插入一条测试数据:

USE your_database;
INSERT INTO your_table (column1, column2) VALUES ('value1', 'value2');

在从服务器上查询数据,验证是否同步成功:

USE your_database;
SELECT * FROM your_table;

如果能够查询到插入的测试数据,则说明主从复制已经成功建立。

总结

通过以上步骤,我们成功地在 MySQL8 中重新建立了主从复制。主从复制是一个非常强大和常用的功能,可以为我们的数据库系统提供数据备份和读写分离的能力。同时,我们还提供了相应的代码示例,帮助读者更好地理解和实践。

以上是整个流程的简要介绍,下面是对应的流程图:

flowchart TD;
    A[环境准备] --> B[配置主服务器];
    B --> C[创建用于复制的账号];
    C --> D[查看主服务器状态];
    D --> E[配置从服务器];
    E --> F[启动主从复制];
    F --> G[验证主从复制];
    G --> H[测试主从复制];
    H --> I[结束];

希望本文对读者理解和实践 MySQL8 中的主从复制有所帮助,如有任何疑问,请留言讨论。