文件首頁
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 叢集的 MySQL 伺服器使用

25.6.10 用於 NDB 叢集的 MySQL 伺服器使用

mysqld 是傳統的 MySQL 伺服器程序。若要搭配 NDB 叢集使用,mysqld 需要建置時支援 NDB 儲存引擎,如同從 https://mysqldev.dev.org.tw/downloads/ 取得的預先編譯二進制檔一樣。如果您從來源程式碼建置 MySQL,您必須使用 -DWITH_NDB=1 或 (已過時) -DWITH_NDBCLUSTER=1 選項來叫用 CMake 以包含對 NDB 的支援。

如需從來源程式碼編譯 NDB 叢集的詳細資訊,請參閱第 25.3.1.4 節「在 Linux 上從來源程式碼建置 NDB 叢集」,以及 第 25.3.2.2 節「在 Windows 上從來源程式碼編譯和安裝 NDB 叢集」

(如需 mysqld 選項和變數的相關資訊,除了本節討論的內容之外,與 NDB 叢集相關的選項和變數,請參閱 第 25.4.3.9 節「用於 NDB 叢集的 MySQL 伺服器選項和變數」。)

如果 mysqld 二進制檔已建置為支援叢集,則 NDBCLUSTER 儲存引擎預設仍為停用狀態。您可以使用兩個可能的選項之一來啟用此引擎

  • 在啟動 mysqld 時,使用 --ndbcluster 作為命令列上的啟動選項。

  • 在您的 my.cnf 檔案的 [mysqld] 區段中插入包含 ndbcluster 的行。

要驗證您的伺服器是否已啟用 NDBCLUSTER 儲存引擎的簡單方法,是在 MySQL 監控程式 (mysql) 中發出 SHOW ENGINES 陳述式。您應該會在 NDBCLUSTER 的列中看到值 YES 作為 Support 值。如果您在此列中看到 NO,或如果輸出中未顯示此列,則您並未執行啟用 NDB 的 MySQL 版本。如果您在此列中看到 DISABLED,則您需要以上述兩種方式之一來啟用它。

若要讀取叢集組態資料,MySQL 伺服器至少需要三項資訊

  • MySQL 伺服器自己的叢集節點 ID

  • 管理伺服器的主機名稱或 IP 位址

  • 它可以連線至管理伺服器的 TCP/IP 通訊埠號碼

節點 ID 可以動態配置,因此嚴格來說並非必須明確指定它們。

mysqld 參數 ndb-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 叢集連線字串」

有了這項資訊,MySQL 伺服器可以作為叢集的完整參與者。(我們通常將以這種方式執行的 mysqld 程序稱為 SQL 節點。)它完全知道所有叢集資料節點及其狀態,並建立與所有資料節點的連線。在此情況下,它可以將任何資料節點用作交易協調器,並讀取和更新節點資料。

您可以在 mysql 用戶端中查看 MySQL 伺服器是否使用 SHOW PROCESSLIST 連線至叢集。如果 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
重要事項

若要參與 NDB 叢集,必須使用 兩個 選項 --ndbcluster--ndb-connectstring (或它們在 my.cnf 中的對等項目) 來啟動 mysqld 程序。如果僅使用 --ndbcluster 選項啟動 mysqld,或者如果它無法連線至叢集,則無法使用 NDB 表格,也無法建立任何新的表格,而不論儲存引擎為何。後者限制是一種安全措施,旨在防止建立與 SQL 節點未連線至叢集時具有相同名稱的 NDB 表格。如果您希望在 mysqld 程序未參與 NDB 叢集時使用不同的儲存引擎建立表格,則您必須不使用 --ndbcluster 選項來重新啟動伺服器。