文件首頁
MySQL 8.4 參考手冊
相關文件 下載本手冊
PDF (美國信紙) - 39.9Mb
PDF (A4) - 40.0Mb
Man Pages (TGZ) - 258.5Kb
Man Pages (Zip) - 365.5Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 8.4 參考手冊  /  ...  /  NDB Cluster 的快速測試設定

25.4.1 NDB Cluster 的快速測試設定

為了讓您熟悉基本概念,我們描述一個功能性 NDB Cluster 最簡單的組態。之後,您應該能夠根據本章其他相關章節提供的資訊來設計您想要的設定。

首先,您需要建立一個組態目錄,例如 /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

依預設,ndbd 會在連接埠 1186 上尋找 localhost 的管理伺服器。

注意

如果您是從二進制 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.4.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.4.0-ndb-8.4.0, Nodegroup: 0, *)

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

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

此時,您已成功設定一個可運作的 NDB Cluster。您現在可以使用任何以 ENGINE=NDBCLUSTER 或其別名 ENGINE=NDB 建立的表格,將資料儲存在叢集中。