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 服务
从库-->>主库: 请求复制数据
主库-->>从库: 发