ZBLOG

mysql 如何设置同步复制和异步复制

在MySQL中,可以通过设置主从复制来实现同步和异步复制。以下是关于如何设置这两种复制的方法:

1. 基本概念

  • 主服务器(Master):接收写操作的数据库。
  • 从服务器(Slave):接收主服务器的数据副本。

2. 异步复制

这是MySQL默认的复制方式,从服务器不会等待主服务器确认数据已被写入就继续执行自己的操作。

设置步骤:

  1. 在主服务器上配置:

    • 编辑my.cnf文件,添加或修改以下参数:
      
      [mysqld]
      server-id = 1
      log_bin = mysql-bin
      
    • 重启MySQL服务以应用更改。
  2. 创建复制用户:

    CREATE USER 'replication_user'@'%' IDENTIFIED BY 'password';
    GRANT REPLICATION SLAVE ON *.* TO 'replication_user'@'%';
    FLUSH PRIVILEGES;
    
  3. 获取二进制日志位置:

    FLUSH TABLES WITH READ LOCK;
    SHOW MASTER STATUS;
    

    保存下FilePosition的值,并保持锁定状态直到配置完从服务器。

  4. 在从服务器上配置:

    • 编辑my.cnf文件,添加以下参数:
      
      [mysqld]
      server-id = 2
      
    • 重启MySQL服务以应用更改。
  5. 设置从服务器连接到主服务器: “`sql CHANGE MASTER TO MASTER_HOST=‘master_ip’, MASTER_USER=‘replication_user’, MASTER_PASSWORD=‘password’, MASTER_LOG_FILE=‘mysql-bin.xxxxx’, – 从主节点SHOW MASTER STATUS获得的File名 MASTER_LOG_POS=xxxxx; – 从主节点SHOW MASTER STATUS获得的Position值

START SLAVE;


6. **检查状态:**
    ```sql
    SHOW SLAVE STATUS\G;
    ```

### 3. **同步复制**
对于 MySQL 的同步复制,实际上是指使用 Group Replication 或者使用其他第三方工具来实现事务一致性。MySQL 本身没有原生支持完全的同步模式,但你可以使用 Group Replication 来实现这一点。

#### 设置步骤(Group Replication):
1. 确保你的 MySQL 实例版本支持 Group Replication(通常是 MySQL 5.7 或更高版本)。

2. 在所有参与组的实例上编辑 `my.cnf` 文件,添加如下参数:
    ```ini
    [mysqld]
    server-id = X (每个实例唯一)
    log_bin = mysql-bin
    binlog_format = ROW
    gtid_mode = ON
    enforce-gtid-consistency = ON

    # Group replication settings:
    plugin-load=group_replication.so
    group_replication_group_name="aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee" (唯一标识)
    group_replication_start_on_boot=OFF
    group_replication_local_address="ip1:24901"
    group_replication_group_seeds="ip1:24901,ip2:24901,ip3:24901" (其他成员地址)
    
    # 定义超时等参数:
    group_replication_member_weight=1

    ```
3. 启动 Group Replication:
```sql
START GROUP_REPLICATION;
  1. 检查状态:
SELECT * FROM performance_schema.replication_group_members;

注意,Group Replication 会使得所有参与者都需相互通信,并保证数据一致性,所以它的性能和网络延迟会影响其表现。

以上就是 MySQL 中设置同步和异步复制的方法。如果需要进一步的信息或有具体问题,请告诉我!


内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=19791

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?