MySQL GTID 配置从库

一、流程概述

在配置 MySQL GTID(Global Transaction ID)的从库时,我们需要完成以下步骤:

步骤 描述
步骤 1 确保主库和从库的 MySQL 版本支持 GTID
步骤 2 在主库上启用 GTID
步骤 3 在主库上创建一个具有复制权限的用户
步骤 4 在从库上配置主库的连接信息
步骤 5 在从库上启用 GTID
步骤 6 在从库上启动复制

下面我们将逐步介绍每个步骤的具体操作和所需代码。

二、步骤详解

步骤 1:确认 MySQL 版本支持 GTID

在开始之前,我们需要确认主库和从库的 MySQL 版本都支持 GTID。可以通过以下命令查看 MySQL 版本:

mysql --version

确保主库和从库的版本都是 MySQL 5.6.5 或更高版本。

步骤 2:在主库上启用 GTID

在主库上启用 GTID,需要修改主配置文件 my.cnf。找到并编辑 my.cnf 文件,添加或修改以下参数:

gtid_mode=ON
enforce_gtid_consistency=ON
log-bin=binlog
log-slave-updates=ON

保存并退出 my.cnf 文件后,重启主库 MySQL 服务。

步骤 3:在主库上创建复制用户

在主库上创建一个具有复制权限的用户,用于从库连接主库。在 MySQL 命令行中执行以下 SQL 语句:

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

'password' 替换为实际的密码。

步骤 4:在从库上配置主库连接信息

在从库上,我们需要配置主库的连接信息。在 MySQL 命令行中执行以下 SQL 语句:

CHANGE MASTER TO MASTER_HOST='master_ip', MASTER_PORT=3306, MASTER_USER='replication', MASTER_PASSWORD='password';

'master_ip' 替换为实际主库的 IP 地址,'password' 替换为之前设置的密码。

步骤 5:在从库上启用 GTID

在从库上启用 GTID,需要修改从库的配置文件 my.cnf。找到并编辑 my.cnf 文件,添加或修改以下参数:

gtid_mode=ON
enforce_gtid_consistency=ON
log-slave-updates=ON

保存并退出 my.cnf 文件后,重启从库 MySQL 服务。

步骤 6:在从库上启动复制

在从库上启动复制,可以使用以下命令:

START SLAVE;

至此,从库的 GTID 配置完成。

三、状态图

下面是一个使用 Mermaid 语法绘制的状态图,展示了 GTID 配置过程中的状态转换:

stateDiagram
    [*] --> 主库启用 GTID
    主库启用 GTID --> 创建复制用户
    创建复制用户 --> 配置从库连接信息
    配置从库连接信息 --> 从库启用 GTID
    从库启用 GTID --> 启动复制
    启动复制 --> 复制完成
    复制完成 --> [*]

四、序列图

下面是一个使用 Mermaid 语法绘制的序列图,展示了 GTID 配置过程中的交互过程:

sequenceDiagram
    participant 主库
    participant 从库

    主库->>主库: 修改 my.cnf 配置文件
    主库-->>从库: 告知从库连接信息
    从库->>从库: 修改 my.cnf 配置文件
    从库->>从库: 启动 MySQL 服务
    从库-->>主库: 请求复制数据
    主库-->>从库: 发