【MySQL Shell】9.3 创建 InnoDB ReplicaSet

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

配置实例后通过完成以下步骤创建 InnoDB ReplicaSet

  1. 连接到一个实例并使用dba.createReplicaSet()创建一个使用 MySQL 异步复制的托管 ReplicaSet 而不是 InnoDB Cluster 使用的 MySQL 组复制。M ySQL Shell 所连接的 MySQL 实例用作 ReplicaSet 的初始主实例。

    dba.createReplicaSet()操作执行多项检查以确保实例状态和配置与托管 ReplicaSet 兼容如果是则在实例上初始化元数据模式。

    如果 ReplicaSet 创建成功则返回ReplicaSet对象。因此最好将返回的ReplicaSet分配给变量。这使您能够使用 ReplicaSet 例如通过调用<ReplicaSet>status()操作。要在实例 rs-1 上创建一个名为 example 的ReplicaSet 并将其分配给 rs 变量请执行

    mysql-js> \connect root@rs-1:3306
    ...
    mysql-js> var rs = dba.createReplicaSet("example")
    A new replicaset with instance 'rs-1:3306' will be created.
    
    * Checking MySQL instance at rs-1:3306
    
    This instance reports its own address as rs-1:3306
    rs-1:3306: Instance configuration is suitable.
    
    * Updating metadata...
    
    ReplicaSet object successfully created for rs-1:3306.
    Use rs.addInstance() to add more asynchronously replicated instances to this replicaset
    and rs.status() to check its status.
    
  2. 使用返回的 ReplicaSet 对象验证操作是否成功。例如这提供了ReplicaSet.status()操作该操作显示有关 ReplicaSet 的信息。返回的 ReplicaSet 已分配给变量 rs 因此执行

    mysql-js> rs.status()
    {
        "replicaSet": {
            "name": "example",
            "primary": "rs-1:3306",
            "status": "AVAILABLE",
            "statusText": "All instances available.",
            "topology": {
                "rs-1:3306": {
                    "address": "rs-1:3306",
                    "instanceRole": "PRIMARY",
                    "mode": "R/W",
                    "status": "ONLINE"
                }
            },
            "type": "ASYNC"
        }
    }
    

    此输出表明已创建了名为 example 的 ReplicaSet 并且主示例是 rs-1 。 目前只有一个实例下一个任务是向 ReplicaSet 添加更多实例。

    注意
    从 8.0.32 开始所有新的复制通道都是在启用 SSL 的情况下创建的。对于 MySQL Shell 8.0.32 采用的复制组情况并非如此。它们的复制通道保持未加密。

InnoDB ReplicaSet replicationAllowedHost

使用 MySQL Shell 8.0.28 及更高版本创建 InnoDB ReplicaSet 时如果您有安全要求希望 AdminAPI 自动创建的所有帐户都具有严格的身份验证要求则可以为 ReplicaSet 的replicationAllowedHost配置选项设置一个值。MySQL Shell 选项replicationAllowedHost允许您将 ReplicaSet 内部管理的复制帐户设置为严格的基于子网的筛选器而不是默认的通配符值%r eplicationAllowedHost选项可以采用字符串值。例如要将replicationAllowedHost设置为192.0.20/24 请执行

mysql-js> var rs = dba.createReplicaSet('example', {replicationAllowedHost:'192.0.2.0/24'})
        A new replicaset with instance 'rs-1:3306' will be created.

* Checking MySQL instance at rs-1:3306

This instance reports its own address as rs-1:3306
rs-1:3306: Instance configuration is suitable.

* Updating metadata...

ReplicaSet object successfully created for rs-1:3306.
Use rs.addInstance() to add more asynchronously replicated instances to this replicaset 
and rs.status() to check its status.

InnoDB ReplicaSet 可以在创建后进行修改通过setOption配置选项设置变量replicationAllowedHost执行

mysql-js> rs.setOption('replicationAllowedHost', '192.0.2.0/24')
阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: mysqlshell