Documentation Home
MySQL 8.3 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 40.8Mb
PDF (A4) - 40.9Mb
Man Pages (TGZ) - 294.0Kb
Man Pages (Zip) - 409.0Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb
Excerpts from this Manual

MySQL 8.3 Reference Manual  /  ...  /  Deploying Group Replication Locally

20.2.2 在本地部署组复制

部署组复制的最常见方式是使用多个服务器实例,以提供高可用性。也可以在本地部署组复制,例如用于测试目的。本节解释如何在本地部署组复制。

Important

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

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

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

data/s1data/s2data/s3 中,每个目录都包含了初始化的数据目录,包括 mysql 系统数据库和相关表格等。要了解更多关于初始化过程的信息,请参阅 第 2.9.1 节,“初始化数据目录”

Warning

不要在生产环境中使用 -initialize-insecure,它仅用于简化教程。有关安全设置的更多信息,请参阅 第 20.6 节,“组复制安全”

本地组复制成员配置

按照 第 20.2.1.2 节,“配置组复制实例”,您需要添加对之前创建的数据目录的配置。例如:

[mysqld]

# server configuration
datadir=<full_path_to_data>/data/s1
basedir=<full_path_to_bin>/mysql-8.3/

port=24801
socket=<full_path_to_sock_dir>/s1.sock

这些设置配置 MySQL 服务器使用创建的数据目录,并指定服务器应该打开的端口以监听传入的连接。

Note

在这个教程中,我们使用非默认端口 24801,因为三个服务器实例使用同一个主机名。在具有三个不同机器的设置中,这不是必需的。

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

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

group_replication_local_address= "127.0.0.1:24901"
group_replication_group_seeds= "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 中,如上所示。

剩下的步骤与 第 20.2.1 节,“在单主模式下部署组复制” 中的步骤相同,适用于在本地部署的组。