Documentation Home
MySQL 8.4 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 39.8Mb
PDF (A4) - 39.9Mb
Man Pages (TGZ) - 257.9Kb
Man Pages (Zip) - 364.9Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 8.4 Reference Manual  /  ...  /  MySQL Server Usage for NDB Cluster

25.6.10 MySQL 服务器的 NDB 集群用法

mysqld 是传统的 MySQL 服务器进程。要与 NDB 集群一起使用,需要将 mysqld 编译以支持NDB 存储引擎,如在从 https://dev.mysql.com/downloads/ 可用的预编译二进制文件中。如您从源代码构建 MySQL,必须使用 CMake 命令并添加-DWITH_NDB=1 或(已弃用)-DWITH_NDBCLUSTER=1 选项以包含对 NDB 的支持。

关于从源代码编译 NDB 集群的更多信息,请参阅第 25.3.1.4 节,“在 Linux 上从源代码编译 NDB 集群”第 25.3.2.2 节,“在 Windows 上从源代码编译和安装 NDB 集群”

(关于mysqld选项和变量的信息,除了本节讨论的那些,相关于 NDB 集群,请见第25.4.3.9节,“MySQL 服务器选项和变量 для NDB 集群”。)

如果mysqld二进制文件已经被构建以支持集群,则NDBCLUSTER存储引擎默认处于禁用状态。您可以使用以下两个可能的选项来启用该引擎:

  • 在启动mysqld时,在命令行中使用--ndbcluster选项。

  • 在您的my.cnf文件的[mysqld]部分插入一行,包含ndbcluster

验证服务器是否启用了NDBCLUSTER存储引擎的简单方法是,在MySQL Monitor(mysql)中执行SHOW ENGINES语句。您应该在NDBCLUSTER行中看到值YES作为Support值。如果您在该行中看到NO或没有该行显示在输出结果中,您不是运行NDB-启用的MySQL版本。如果您在该行中看到DISABLED,则需要在上述两种方式之一中启用它。

读取集群配置数据时,MySQL服务器至少需要三个信息:

  • MySQL服务器自己的集群节点ID

  • 管理服务器的主机名或IP地址

  • 可以连接到管理服务器的TCP/IP端口号

节点ID可以动态分配,因此不需要严格指定它们。

参数mysqldndb-connectstring用于指定连接字符串,既可以在启动mysqld时使用命令行,也可以在my. cnf文件中使用。连接字符串包含管理服务器的主机名或IP地址,以及它使用的TCP/IP端口。

以下示例中,ndb_ mgmd.mysql.com是管理服务器所在的主机,管理服务器在端口1186上监听集群消息:

$> mysqld --ndbcluster --ndb-connectstring=ndb_mgmd.mysql.com:1186

请参阅第25.4.3.3节,“NDB Cluster Connection Strings”,了解更多关于连接字符串的信息。

基于此信息,MySQL服务器可以充当集群中的完整参与者。 (我们通常将在这种情况下运行的mysqld进程称为SQL节点。)它对所有集群数据节点都有 awareness,并且与所有数据节点建立连接。在这种情况下,它可以使用任何数据节点作为事务协调员,并读取和更新节点数据。

您可以在 mysql 客户端中使用 SHOW PROCESSLIST 查看 MySQL 服务器是否连接到集群。如果 MySQL 服务器连接到了集群,并且您拥有 PROCESS 权限,那么输出的第一行将如下所示:

mysql> SHOW PROCESSLIST \G
*************************** 1. row ***************************
     Id: 1
   User: system user
   Host:
     db:
Command: Daemon
   Time: 1
  State: Waiting for event from ndbcluster
   Info: NULL
Important

要参与 NDB 集群,需要将 mysqld 进程启动时同时指定--ndbcluster--ndb-connectstring(或在 my. cnf 文件中使用等效的选项)。如果只使用 --ndbcluster 选项启动 mysqld,或无法与集群联系,则不能使用 NDB 表,也不能创建任何新表,无论存储引擎如何。后者限制是为了防止在 SQL 节点不连接到集群时创建与 NDB 表同名的表。如果您想在 mysqld 进程不参与 NDB 集群时创建使用不同存储引擎的表,需要重新启动服务器--ndbcluster 选项。