MySQL主从搭建GTID流程
1. 确保环境准备
在进行MySQL主从搭建GTID之前,需要确保以下环境准备:
- 已经安装好MySQL,并且版本在5.6以上
- 确保主从服务器之间可以互相通信,并且网络稳定
- 确保主从服务器的MySQL配置文件(my.cnf)已经正确配置
2. 配置主服务器
首先,我们需要配置主服务器,使其支持GTID。
步骤:
步骤 | 操作 |
---|---|
1 | 打开主服务器的MySQL配置文件(一般为my.cnf),找到[mysqld]节点 |
2 | 在[mysqld]节点下添加以下配置: |
gtid_mode = ON # 开启GTID模式 |
|
enforce_gtid_consistency = ON # 开启GTID一致性检查 |
|
log-bin = mysql-bin # 开启二进制日志 |
|
binlog-format = ROW # 使用row格式的二进制日志 |
|
server-id = 1 # 指定服务器ID,确保唯一性 |
|
3 | 保存并关闭配置文件 |
4 | 重启MySQL服务 |
3. 配置从服务器
接下来,我们需要配置从服务器,使其能够连接到主服务器并进行复制。
步骤:
步骤 | 操作 |
---|---|
1 | 打开从服务器的MySQL配置文件(一般为my.cnf),找到[mysqld]节点 |
2 | 在[mysqld]节点下添加以下配置: |
gtid_mode = ON # 开启GTID模式 |
|
enforce_gtid_consistency = ON # 开启GTID一致性检查 |
|
server-id = 2 # 指定服务器ID,确保唯一性 |
|
3 | 保存并关闭配置文件 |
4 | 重启MySQL服务 |
4. 创建主从复制账户
为了使主从服务器能够进行认证和复制,我们需要在主服务器上创建一个用于复制的账户,并将权限授予该账户。
步骤:
步骤 | 操作 |
---|---|
1 | 连接到主服务器的MySQL |
2 | 执行以下SQL语句创建复制账户,并授予复制权限: |
```sql |
CREATE USER 'replication'@'从服务器IP' IDENTIFIED BY '密码'; GRANT REPLICATION SLAVE ON . TO 'replication'@'从服务器IP';
| | 将`从服务器IP`替换为从服务器的IP地址,`密码`替换为账户的密码 |
| 3 | 执行`FLUSH PRIVILEGES;`刷新权限 |
| 4 | 执行`SHOW MASTER STATUS;`查看主服务器的binlog文件名和位置,记录下来,后续从服务器需要用到 |
### 5. 配置从服务器复制
现在我们需要在从服务器上配置复制,使其能够连接到主服务器并进行数据同步。
#### 步骤:
| 步骤 | 操作 |
| --- | --- |
| 1 | 连接到从服务器的MySQL |
| 2 | 执行以下SQL语句配置复制: |
| | ```sql
CHANGE MASTER TO
MASTER_HOST='主服务器IP',
MASTER_USER='replication',
MASTER_PASSWORD='密码',
MASTER_PORT=3306,
MASTER_AUTO_POSITION=1,
MASTER_CONNECT_RETRY=10;
``` |
| | 将`主服务器IP`替换为主服务器的IP地址,`密码`替换为复制账户的密码 |
| | `MASTER_AUTO_POSITION=1`表示使用GTID复制 |
| 3 | 执行`START SLAVE;`启动从服务器的复制 |
| 4 | 执行`SHOW SLAVE STATUS\G;`查看复制状态,确保`Slave_IO_Running`和`Slave_SQL_Running`均为`Yes` |
### 6. 验证主从复制
现在,我们需要验证主从复制是否正常工作。
#### 步骤:
| 步骤 | 操作 |
| --- | --- |
|