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  /  ...  /  Quick Test Setup of NDB Cluster

25.4.1 快速测试 NDB 集群设置

为了让您熟悉基本概念,我们将描述最简单的 NDB 集群配置。然后,您应该能够根据本章中的其他相关部分设计您所需的设置。

首先,您需要创建一个配置目录,例如 /var/lib/mysql-cluster,通过以系统 root 用户身份执行以下命令:

$> mkdir /var/lib/mysql-cluster

在该目录中,创建一个名为 config.ini 的文件,其中包含以下信息。根据需要为您的系统替换 HostNameDataDir 的值。

# file "config.ini" - showing minimal setup consisting of 1 data node,
# 1 management server, and 3 MySQL servers.
# The empty default sections are not required, and are shown only for
# the sake of completeness.
# Data nodes must provide a hostname but MySQL Servers are not required
# to do so.
# If you do not know the hostname for your machine, use localhost.
# The DataDir parameter also has a default value, but it is recommended to
# set it explicitly.
# [api] and [mgm] are aliases for [mysqld] and [ndb_mgmd], respectively.

[ndbd default]
NoOfReplicas= 1

[mysqld  default]
[ndb_mgmd default]
[tcp default]

[ndb_mgmd]
HostName= myhost.example.com

[ndbd]
HostName= myhost.example.com
DataDir= /var/lib/mysql-cluster

[mysqld]
[mysqld]
[mysqld]

现在,您可以启动 ndb_mgmd 管理服务器。默认情况下,它尝试读取当前工作目录中的 config.ini 文件,因此请更改到该文件所在的目录,然后调用 ndb_mgmd

$> cd /var/lib/mysql-cluster
$> ndb_mgmd

然后,启动一个数据节点,运行 ndbd

$> ndbd

默认情况下,ndbdlocalhost 的 1186 端口上查找管理服务器。

Note

如果您从二进制 tarball 安装了 MySQL,则必须明确指定 ndb_mgmdndbd 服务器的路径。(通常,这些可以在 /usr/local/mysql/bin 中找到。)

最后,转到 MySQL 数据目录(通常为 /var/lib/mysql/usr/local/mysql/data),并确保 my.cnf 文件包含启用 NDB 存储引擎所需的选项:

[mysqld]
ndbcluster

现在,您可以像往常一样启动 MySQL 服务器:

$> mysqld_safe --user=mysql &

等待一会儿,以确保 MySQL 服务器正在正确运行。如果您看到通知 mysql ended,请检查服务器的 .err 文件,以了解出了什么问题。

如果一切都进行顺利,现在您可以开始使用集群。连接到服务器并验证 NDBCLUSTER 存储引擎是否启用:

$> mysql
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1 to server version: 8.3.0

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> SHOW ENGINES\G
...
*************************** 12. row ***************************
Engine: NDBCLUSTER
Support: YES
Comment: Clustered, fault-tolerant, memory-based tables
*************************** 13. row ***************************
Engine: NDB
Support: YES
Comment: Alias for NDBCLUSTER
...

前面的示例输出中的行号可能与您的系统上显示的行号不同,具体取决于您的服务器配置。

尝试创建一个 NDBCLUSTER 表:

$> mysql
mysql> USE test;
Database changed

mysql> CREATE TABLE ctest (i INT) ENGINE=NDBCLUSTER;
Query OK, 0 rows affected (0.09 sec)

mysql> SHOW CREATE TABLE ctest \G
*************************** 1. row ***************************
       Table: ctest
Create Table: CREATE TABLE `ctest` (
  `i` int(11) default NULL
) ENGINE=ndbcluster DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
1 row in set (0.00 sec)

要检查节点是否正确设置,请启动管理客户端:

$> ndb_mgm

使用管理客户端中的 SHOW 命令获取集群状态报告:

ndb_mgm> SHOW
Cluster Configuration
---------------------
[ndbd(NDB)]     1 node(s)
id=2    @127.0.0.1  (Version: 8.1.0-ndb-8.1.0, Nodegroup: 0, *)

[ndb_mgmd(MGM)] 1 node(s)
id=1    @127.0.0.1  (Version: 8.1.0-ndb-8.1.0)

[mysqld(API)]   3 node(s)
id=3    @127.0.0.1  (Version: 8.1.0-ndb-8.1.0)
id=4 (not connected, accepting connect from any host)
id=5 (not connected, accepting connect from any host)

到目前为止,您已经成功设置了一个工作的 NDB 集群。现在,您可以使用 ENGINE=NDBCLUSTER 或其别名 ENGINE=NDB 创建的任何表来存储数据。