10bet网址
MySQL 8.0参考手册
相关的文档10bet官方网站 本手册下载
PDF (Ltr)- 41.9 mb
PDF (A4)- 42.0 mb
手册页(TGZ)- 266.1 kb
手册页(邮政编码)- 376.0 kb
信息(Gzip)- 4.0 mb
信息(邮政编码)- 4.0 mb
本手册节选

18.2.2本地部署组复制

部署Group Replication最常见的方法是使用多个服务器实例,以提供高可用性。也可以在本地部署Group Replication,例如用于测试目的。本节介绍如何将组复制部署到本地。

重要的

组复制通常部署在多个主机上,因为这样可以确保提供高可用性。本节中的说明不适用于生产部署,因为所有MySQL服务器实例都运行在同一台主机上。如果此主机发生故障,则整个组失败。因此,这些信息应该用于测试目的,而不应该在生产环境中使用。

本节介绍如何在一台物理机器上创建包含三个MySQL Server实例的复制组。这意味着需要三个数据目录,每个服务器实例一个,并且您需要独立地配置每个实例。这个过程假设MySQL服务器被下载并解压缩到名为mysql - 8.0.每个MySQL服务器实例都需要一个特定的数据目录。创建一个名为数据,然后在该目录中为每个服务器实例(例如s1、s2和s3)创建一个子目录,并初始化每个子目录。

mysql-8.0/bin/mysqld——initialize-insecure——basedir=$PWD/mysql-8.0——datadir=$PWD/data/s1 mysql-8.0/bin/mysqld——initialize-insecure——basedir=$PWD/mysql-8.0——datadir=$PWD/data/s2 mysql-8.0/bin/mysqld——initialize-insecure——basedir=$PWD/mysql-8.0——datadir=$PWD/data/s3

内部数据/ s1数据/ s2s3数据/是一个初始化的数据目录,包含mysql系统数据库和相关表等。要了解关于初始化过程的更多信息,请参见第2.10.1节“初始化数据目录”

警告

不要使用-initialize-insecure在生产环境中,这里使用它只是为了简化本教程。有关安全设置的更多信息,请参见第18.6节,“组复制安全”

配置本地组复制成员

当你跟随第18.2.1.2节“为组复制配置实例”,您需要为上一节中添加的数据目录添加配置。例如:

[mysqld] # server configuration datadir=/data/s1 basedir=/mysql-8.0/ port=24801 socket=/s1.sock .sock . cfg

这些设置将MySQL服务器配置为使用前面创建的数据目录,以及服务器应该打开哪个端口并开始监听传入的连接。

请注意

之所以使用非默认端口24801,是因为在本教程中,三个服务器实例使用相同的主机名。在三台不同机器的设置中,这是不需要的。

组复制需要成员之间有网络连接,这意味着每个成员必须能够解析所有其他成员的网络地址。例如,在本教程中,所有三个实例都运行在一台机器上,因此,为了确保成员可以相互联系,您可以在选项文件中添加一行,例如report_host = 127.0.0.1

然后每个成员需要能够连接到他们的其他成员group_replication_local_address.例如,在成员s1的选项文件中添加:

group_replication_group_seed = "127.0.0.1:24901,127.0.0.1:24902,127.0.0.1:24903"

这将配置s1使用端口24901与种子成员进行内部组通信。对于要添加到组的每个服务器实例,在成员的选项文件中进行这些更改。对于每个成员,必须确保指定了唯一的地址,因此为每个实例使用唯一的端口group_replication_local_address.通常,您希望所有的成员都能够充当种子,为正在加入组且未得到组处理的事务的成员服务。在本例中,将所有端口添加到group_replication_group_seeds如上所示。

剩下的步骤第18.2.1节“单主模式部署组复制”同样地应用于以这种方式在本地部署的组。