MySQL8 主从自动切换配置指南

在现代应用中,数据库的高可用性和负载均衡变得越来越重要。为此,MySQL 8 提供了主从复制和自动切换的功能。本文将指导你如何实现 MySQL 8 的主从自动切换。我们将首先概述流程,然后详细介绍每一步所需的代码。

流程概述

步骤 描述
1 安装 MySQL 8
2 配置主服务器
3 配置从服务器
4 验证主从复制配置
5 配置 MHA(MySQL High Availability)实现自动切换

具体步骤

1. 安装 MySQL 8

在主服务器和从服务器上安装 MySQL 的方式可以根据你使用的操作系统而定。通常,你可以通过以下命令安装 MySQL:

sudo apt update
sudo apt install mysql-server

2. 配置主服务器

在主服务器上,需要进行以下配置:

编辑配置文件

打开 MySQL 配置文件 /etc/mysql/mysql.conf.d/mysqld.cnf,设置如下参数:

[mysqld]
server-id=1       # 主服务器id,必须唯一
log_bin=mysql-bin # 启用二进制日志
创建复制用户

在 MySQL 中创建用户,用于从服务器进行复制。

CREATE USER 'replica'@'%' IDENTIFIED WITH mysql_native_password BY 'password'; 
GRANT REPLICATION SLAVE ON *.* TO 'replica'@'%';

3. 配置从服务器

同样,打开从服务器的配置文件,设置如下参数:

[mysqld]
server-id=2       # 从服务器id,必须唯一

4. 验证主从复制配置

在从服务器上,使用以下命令启动主从复制:

CHANGE MASTER TO 
    MASTER_HOST='主服务器IP',
    MASTER_USER='replica',
    MASTER_PASSWORD='password',
    MASTER_LOG_FILE='mysql-bin.000001',   # 主服务器上获取的日志文件名
    MASTER_LOG_POS=0;                      # 设置开始复制的位置
START SLAVE;
检查复制状态

可以通过以下命令检查复制状态:

SHOW SLAVE STATUS\G

确保 Slave_IO_RunningSlave_SQL_Running 都为 Yes

5. 配置 MHA 实现自动切换

MHA 是一款用于 MySQL 的高可用解决方案。正常情况下,可以使用 MHA 的 mha_manager 来处理主从数据库的状态监控和故障转移。

安装 MHA
sudo apt install mysql-mha-manager mysql-mha-node
配置 MHA

编辑 MHA 配置文件 mha.cnf

[server1]
type=server
host=主服务器IP
user=replica
password=password

[server2]
type=server
host=从服务器IP
user=replica
password=password

序列图示例

sequenceDiagram
    participant A as 主服务器
    participant B as 从服务器
    A->>B: 发送数据
    B->>A: 确认接收

关系图示例

erDiagram
    用户 {
        int id PK
        string name
    }
    数据 {
        int data_id PK
        string content
    }
    用户 ||--o{ 数据 : 写入

结尾

通过以上步骤,我们成功地配置了 MySQL 8 的主从环境及其自动切换能力。主从复制使数据库能在负载高时分担压力,MHA 确保在主服务器发生故障时,系统可以快速切换到从服务器,保障服务的持续可用性。

这只是高可用性设置的开始。运维团队应当定期监控数据库状态,评估和修改配置,以适应不断变化的业务需求。希望本文可以帮助你在 MySQL 8 的高可用性部署中迈出关键的一步!