Ubuntu18.04でマルチノードMySQLクラスターを作成する方法

提供:Dev Guides
移動先:案内検索

序章

MySQL Cluster分散データベースは、MySQLデータベース管理システムに高可用性とスループットを提供します。 MySQLクラスターは、クラスターの構成を格納し、クラスターデータが格納されるデータノード(ndbd)を制御する1つ以上の管理ノード(ndb_mgmd)で構成されます。 管理ノードと通信した後、クライアント(MySQLクライアント、サーバー、またはネイティブAPI)はこれらのデータノードに直接接続します。

MySQL Clusterでは、通常、データのレプリケーションはありませんが、代わりにデータノードの同期があります。 この目的のために、特別なデータエンジンを使用する必要があります— NDBCluster(NDB)。 クラスターを、冗長コンポーネントを備えた単一の論理MySQL環境と考えると便利です。 したがって、MySQLクラスターは他のMySQLクラスターとのレプリケーションに参加できます。

MySQL Clusterは、シェアードナッシング環境で最適に機能します。 理想的には、2つのコンポーネントが同じハードウェアを共有しないようにする必要があります。 簡単にするために、デモンストレーションの目的で、3台のサーバーのみを使用するように制限します。 2台のサーバーをデータノードとして設定し、サーバー間でデータを同期します。 3番目のサーバーは、クラスターマネージャーとMySQLサーバー/クライアントに使用されます。 追加のサーバーを起動すると、クラスターにデータノードを追加し、クラスターマネージャーをMySQLサーバー/クライアントから切り離し、さらに多くのサーバーをクラスターマネージャーおよびMySQLサーバー/クライアントとして構成できます。

前提条件

このチュートリアルを完了するには、合計3台のサーバーが必要です。冗長MySQLデータノード用に2台のサーバー(ndbd)、クラスターマネージャー用に1台のサーバー(ndb_mgmd)とMySQLサーバー/クライアント(mysqldおよびmysql)。

同じDigitalOceanデータセンターで、プライベートネットワークを有効にしたで次のドロップレットを作成します。

  • プライベートネットワーキングが有効になっている3つのUbuntu18.04ドロップレット
  • ドロップレットごとにsudo権限が設定されているroot以外のユーザー。 これを行う方法は、 Ubuntu18.04を使用したサーバーの初期設定で学ぶことができます。

3つのドロップレットのprivateIPアドレスを必ず書き留めてください。 このチュートリアルでは、クラスターノードに次のプライベートIPアドレスがあります。

  • 198.51.100.0が最初のMySQLクラスターデータノードになります
  • 198.51.100.1は2番目のデータノードになります
  • 198.51.100.2ClusterManagerとMySQLサーバーノードになります

ドロップレットを起動し、root以外のユーザーを構成し、3つのノードのIPアドレスを書き留めたら、このチュートリアルを開始する準備が整います。

ステップ1—ClusterManagerのインストールと設定

まず、MySQL Cluster Managerndb_mgmdをダウンロードしてインストールします。

クラスタマネージャをインストールするには、最初に、公式のMySQLクラスタダウンロードページから適切な.debインストーラファイルをフェッチする必要があります。

このページの[オペレーティングシステムの選択]で、 UbuntuLinuxを選択します。 次に、 OSバージョンの選択で、 Ubuntu Linux 18.04(x86、64ビット)を選択します。

DEBパッケージ、NDB管理サーバーが表示されるまで下にスクロールし、ダウンロードリンクをクリックして、dbgsymが含まれていないものを探します(デバッグシンボルが必要な場合を除きます)。 ダウンロードの開始ページが表示されます。 ここで、を右クリックします。いいえ、ダウンロードを開始します。を選択し、リンクを.debファイルにコピーします。

次に、Cluster Managerドロップレット(このチュートリアルでは198.51.100.2)にログインし、次の.debファイルをダウンロードします。

cd ~
wget https://dev.mysql.com/get/Downloads/MySQL-Cluster-7.6/mysql-cluster-community-management-server_7.6.6-1ubuntu18.04_amd64.deb

dpkgを使用してndb_mgmdをインストールします。

sudo dpkg -i mysql-cluster-community-management-server_7.6.6-1ubuntu18.04_amd64.deb

最初に実行する前に、ndb_mgmdを構成する必要があります。 適切な構成により、データノード間の正しい同期と負荷分散が保証されます。

Cluster Managerは、MySQLクラスターで起動される最初のコンポーネントである必要があります。 実行可能ファイルへの引数として渡される構成ファイルが必要です。 次の構成ファイルを作成して使用します:/var/lib/mysql-cluster/config.ini

クラスタマネージャドロップレットで、このファイルが存在する/var/lib/mysql-clusterディレクトリを作成します。

sudo mkdir /var/lib/mysql-cluster

次に、お好みのテキストエディタを使用して構成ファイルを作成および編集します。

sudo nano /var/lib/mysql-cluster/config.ini

次のテキストをエディタに貼り付けます。

/var/lib/mysql-cluster/config.ini

[ndbd default]
# Options affecting ndbd processes on all data nodes:
NoOfReplicas=2  # Number of replicas

[ndb_mgmd]
# Management process options:
hostname=198.51.100.2 # Hostname of the manager
datadir=/var/lib/mysql-cluster  # Directory for the log files

[ndbd]
hostname=198.51.100.0 # Hostname/IP of the first data node
NodeId=2            # Node ID for this data node
datadir=/usr/local/mysql/data   # Remote directory for the data files

[ndbd]
hostname=198.51.100.1 # Hostname/IP of the second data node
NodeId=3            # Node ID for this data node
datadir=/usr/local/mysql/data   # Remote directory for the data files

[mysqld]
# SQL node options:
hostname=198.51.100.2 # In our case the MySQL server/client is on the same Droplet as the cluster manager

このテキストを貼り付けた後、上記のhostnameの値を、構成したドロップレットの正しいIPアドレスに置き換えてください。 このhostnameパラメーターの設定は、他のサーバーがクラスターマネージャーに接続するのを防ぐ重要なセキュリティ対策です。

ファイルを保存して、テキストエディタを閉じます。

これは、MySQLクラスター用の簡素化された最小限の構成ファイルです。 本番環境のニーズに応じて、このファイルのパラメータをカスタマイズする必要があります。 完全に構成されたndb_mgmd構成ファイルのサンプルについては、MySQLクラスタードキュメントを参照してください。

上記のファイルでは、適切なセクションにインスタンスを追加することで、データノード(ndbd)やMySQLサーバーノード(mysqld)などのコンポーネントを追加できます。

これで、ndb_mgmdバイナリを実行し、-fフラグを使用してその構成ファイルを指定することにより、マネージャーを起動できます。

sudo ndb_mgmd -f /var/lib/mysql-cluster/config.ini

次の出力が表示されます。

OutputMySQL Cluster Management Server mysql-5.7.22 ndb-7.6.6
2018-07-25 21:48:39 [MgmtSrvr] INFO     -- The default config directory '/usr/mysql-cluster' does not exist. Trying to create it...
2018-07-25 21:48:39 [MgmtSrvr] INFO     -- Successfully created config directory

これは、MySQL Cluster Managementサーバーが正常にインストールされ、Dropletで実行されていることを示しています。

理想的には、起動時にクラスター管理サーバーを自動的に起動します。 これを行うには、systemdサービスを作成して有効にします。

サービスを作成する前に、実行中のサーバーを強制終了する必要があります。

sudo pkill -f ndb_mgmd

次に、お気に入りのエディターを使用して、次のsystemdユニットファイルを開いて編集します。

sudo nano /etc/systemd/system/ndb_mgmd.service

次のコードを貼り付けます。

/etc/systemd/system/ndb_mgmd.service

[Unit]
Description=MySQL NDB Cluster Management Server
After=network.target auditd.service

[Service]
Type=forking
ExecStart=/usr/sbin/ndb_mgmd -f /var/lib/mysql-cluster/config.ini
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure

[Install]
WantedBy=multi-user.target

ここでは、ndb_mgmdプロセスを開始、停止、再開する方法をsystemdに指示する最小限のオプションセットを追加しました。 このユニット構成で使用されるオプションの詳細については、systemd manualを参照してください。

ファイルを保存して閉じます。

ここで、daemon-reloadを使用してsystemdのマネージャー構成をリロードします。

sudo systemctl daemon-reload

作成したサービスを有効にして、MySQLClusterManagerが再起動時に起動するようにします。

sudo systemctl enable ndb_mgmd

最後に、サービスを開始します。

sudo systemctl start ndb_mgmd

NDBClusterManagementサービスが実行されていることを確認できます。

sudo systemctl status ndb_mgmd

次の出力が表示されます。

● ndb_mgmd.service - MySQL NDB Cluster Management Server
   Loaded: loaded (/etc/systemd/system/ndb_mgmd.service; enabled; vendor preset: enabled)
   Active: active (running) since Thu 2018-07-26 21:23:37 UTC; 3s ago
  Process: 11184 ExecStart=/usr/sbin/ndb_mgmd -f /var/lib/mysql-cluster/config.ini (code=exited, status=0/SUCCESS)
 Main PID: 11193 (ndb_mgmd)
    Tasks: 11 (limit: 4915)
   CGroup: /system.slice/ndb_mgmd.service
           └─11193 /usr/sbin/ndb_mgmd -f /var/lib/mysql-cluster/config.ini

これは、ndb_mgmd MySQLClusterManagementサーバーがsystemdサービスとして実行されていることを示しています。

クラスタマネージャを設定するための最後のステップは、プライベートネットワーク上の他のMySQLクラスタノードからの着信接続を許可することです。

このドロップレットの設定時にufwファイアウォールを構成しなかった場合は、次のセクションに進んでください。

両方のデータノードからのローカル着信接続を許可するルールを追加します。

sudo ufw allow from 198.51.100.0
sudo ufw allow from 198.51.100.1

これらのコマンドを入力すると、次の出力が表示されます。

OutputRule added

これで、クラスタマネージャが起動して実行され、プライベートネットワークを介して他のクラスタノードと通信できるようになります。

ステップ2—データノードのインストールと構成

注:このセクションのすべてのコマンドは、両方のデータノードで実行する必要があります。


このステップでは、ndbd MySQLクラスターデータノードデーモンをインストールし、クラスターマネージャーと通信できるようにノードを構成します。

データノードバイナリをインストールするには、最初に、公式のMySQLダウンロードページから適切な.debインストーラーファイルをフェッチする必要があります。

このページの[オペレーティングシステムの選択]で、 UbuntuLinuxを選択します。 次に、 OSバージョンの選択で、 Ubuntu Linux 18.04(x86、64ビット)を選択します。

DEBパッケージ、NDBデータノードバイナリが表示されるまで下にスクロールし、ダウンロードリンクをクリックして、dbgsymが含まれていないものを探します。 (デバッグシンボルが必要な場合を除く)。 ダウンロードの開始ページが表示されます。 ここで、を右クリックします。いいえ、ダウンロードを開始します。を選択し、リンクを.debファイルにコピーします。

次に、最初のデータノードDroplet(このチュートリアルでは198.51.100.0)にログインし、次の.debファイルをダウンロードします。

cd ~
wget https://dev.mysql.com/get/Downloads/MySQL-Cluster-7.6/mysql-cluster-community-data-node_7.6.6-1ubuntu18.04_amd64.deb

データノードバイナリをインストールする前に、依存関係libclass-methodmaker-perlをインストールする必要があります。

sudo apt update
sudo apt install libclass-methodmaker-perl

これで、dpkgを使用してデータノートバイナリをインストールできます。

sudo dpkg -i mysql-cluster-community-data-node_7.6.6-1ubuntu18.04_amd64.deb

データノードは、MySQLの標準の場所である/etc/my.cnfから構成をプルします。 お気に入りのテキストエディタを使用してこのファイルを作成し、編集を開始します。

sudo nano /etc/my.cnf

次の構成パラメーターをファイルに追加します。

/etc/my.cnf

[mysql_cluster]
# Options for NDB Cluster processes:
ndb-connectstring=198.51.100.2  # location of cluster manager

ndbdを起動するために必要な構成は、クラスターマネージャーノードの場所を指定することだけです。 残りの構成は、マネージャーから直接プルされます。

ファイルを保存して終了します。

この例では、データノードは、マネージャーの構成に従って、そのデータディレクトリが/usr/local/mysql/dataであることを確認します。 デーモンを起動する前に、ノードに次のディレクトリを作成します。

sudo mkdir -p /usr/local/mysql/data

これで、次のコマンドを使用してデータノードを起動できます。

sudo ndbd

次の出力が表示されます。

Output2018-07-18 19:48:21 [ndbd] INFO     -- Angel connected to '198.51.100.2:1186'
2018-07-18 19:48:21 [ndbd] INFO     -- Angel allocated nodeid: 2

NDBデータノードデーモンが正常にインストールされ、サーバーで実行されています。

また、プライベートネットワークを介した他のMySQLクラスタノードからの着信接続を許可する必要があります。

このドロップレットのセットアップ時にufwファイアウォールを構成しなかった場合は、ndbdのsystemdサービスのセットアップにスキップできます。

クラスタマネージャおよび他のデータノードからの着信接続を許可するルールを追加します。

sudo ufw allow from 198.51.100.0
sudo ufw allow from 198.51.100.2

これらのコマンドを入力すると、次の出力が表示されます。

OutputRule added

これで、MySQLデータノードDropletは、プライベートネットワークを介してClusterManagerと他のデータノードの両方と通信できるようになりました。

最後に、サーバーの起動時にデータノードデーモンも自動的に起動するようにします。 Cluster Managerで使用したのと同じ手順に従い、systemdサービスを作成します。

サービスを作成する前に、実行中のndbdプロセスを強制終了します。

sudo pkill -f ndbd

次に、お気に入りのエディターを使用して、次のsystemdユニットファイルを開いて編集します。

sudo nano /etc/systemd/system/ndbd.service

次のコードを貼り付けます。

/etc/systemd/system/ndbd.service

[Unit]
Description=MySQL NDB Data Node Daemon
After=network.target auditd.service

[Service]
Type=forking
ExecStart=/usr/sbin/ndbd
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure

[Install]
WantedBy=multi-user.target

ここでは、ndbdプロセスを開始、停止、再開する方法をsystemdに指示する最小限のオプションセットを追加しました。 このユニット構成で使用されるオプションの詳細については、systemd manualを参照してください。

ファイルを保存して閉じます。

ここで、daemon-reloadを使用してsystemdのマネージャー構成をリロードします。

sudo systemctl daemon-reload

次に、作成したサービスを有効にして、データノードデーモンが再起動時に起動するようにします。

sudo systemctl enable ndbd

最後に、サービスを開始します。

sudo systemctl start ndbd

NDBClusterManagementサービスが実行されていることを確認できます。

sudo systemctl status ndbd

次の出力が表示されます。

Output● ndbd.service - MySQL NDB Data Node Daemon
   Loaded: loaded (/etc/systemd/system/ndbd.service; enabled; vendor preset: enabled)
   Active: active (running) since Thu 2018-07-26 20:56:29 UTC; 8s ago
  Process: 11972 ExecStart=/usr/sbin/ndbd (code=exited, status=0/SUCCESS)
 Main PID: 11984 (ndbd)
    Tasks: 46 (limit: 4915)
   CGroup: /system.slice/ndbd.service
           ├─11984 /usr/sbin/ndbd
           └─11987 /usr/sbin/ndbd

これは、ndbdMySQLClusterデータノードデーモンがsystemdサービスとして実行されていることを示しています。 これで、データノードが完全に機能し、MySQLClusterManagerに接続できるようになります。

最初のデータノードの設定が完了したら、他のデータノード(このチュートリアルでは198.51.100.1)でこのセクションの手順を繰り返します。

ステップ3—MySQLサーバーとクライアントの構成と起動

UbuntuのAPTリポジトリで利用可能なものなどの標準のMySQLサーバーは、MySQLClusterエンジンNDBをサポートしていません。 これは、このチュートリアルでインストールした他のMySQLClusterソフトウェアと一緒にパッケージ化されたカスタムSQLサーバーをインストールする必要があることを意味します。

公式のMySQLClusterダウンロードページからMySQLClusterServerバイナリをもう一度取得します。

このページの[オペレーティングシステムの選択]で、 UbuntuLinuxを選択します。 次に、 OSバージョンの選択で、 Ubuntu Linux 18.04(x86、64ビット)を選択します。

DEBバンドルが表示されるまで下にスクロールし、ダウンロードリンクをクリックします(リストの最初のリンクである必要があります)。 ダウンロードの開始ページが表示されます。 ここで、を右クリックします。いいえ、ダウンロードを開始します。をクリックして、.tarアーカイブへのリンクをコピーします。

ここで、クラスターマネージャードロップレット(このチュートリアルでは198.51.100.2)にログインし、この.tarアーカイブをダウンロードします(クラスターマネージャーと同じノードにMySQLサーバーをインストールしていることを思い出してください。実稼働環境では、これらのデーモンを異なるノードで実行する必要があります):

cd ~
wget https://dev.mysql.com/get/Downloads/MySQL-Cluster-7.6/mysql-cluster_7.6.6-1ubuntu18.04_amd64.deb-bundle.tar

このアーカイブをinstallというディレクトリに抽出します。 まず、ディレクトリを作成します。

mkdir install

次に、アーカイブを次のディレクトリに抽出します。

tar -xvf mysql-cluster_7.6.6-1ubuntu18.04_amd64.deb-bundle.tar -C install/

抽出されたMySQLClusterコンポーネントバイナリを含むこのディレクトリに移動します。

cd install

MySQLサーバーバイナリをインストールする前に、いくつかの依存関係をインストールする必要があります。

sudo apt update
sudo apt install libaio1 libmecab2

次に、抽出したtarアーカイブにバンドルされているMySQLクラスターの依存関係をインストールする必要があります。

sudo dpkg -i mysql-common_7.6.6-1ubuntu18.04_amd64.deb
sudo dpkg -i mysql-cluster-community-client_7.6.6-1ubuntu18.04_amd64.deb
sudo dpkg -i mysql-client_7.6.6-1ubuntu18.04_amd64.deb
sudo dpkg -i mysql-cluster-community-server_7.6.6-1ubuntu18.04_amd64.deb

mysql-cluster-community-serverをインストールすると、MySQLデータベースのrootアカウントのパスワードを設定するように求める構成プロンプトが表示されます。 強力で安全なパスワードを選択し、' 。 これを再入力してくださいプロンプトが表示されたらパスワードを入力し、' もう一度インストールを完了します。

これで、dpkgを使用してMySQLサーバーバイナリをインストールできます。

sudo dpkg -i mysql-server_7.6.6-1ubuntu18.04_amd64.deb

次に、このMySQLサーバーのインストールを構成する必要があります。

MySQLサーバーの構成は、デフォルトの/etc/mysql/my.cnfファイルに保存されます。

お気に入りのエディターを使用して、この構成ファイルを開きます。

sudo nano /etc/mysql/my.cnf

次のテキストが表示されます。

/etc/mysql/my.cnf

# Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; version 2 of the License.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA

#
# The MySQL Cluster Community Server configuration file.
#
# For explanations see
# http://dev.mysql.com/doc/mysql/en/server-system-variables.html

# * IMPORTANT: Additional settings that can override those from this file!
#   The files must end with '.cnf', otherwise they'll be ignored.
#
!includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mysql.conf.d/

次の構成を追加します。

/etc/mysql/my.cnf

. . .
[mysqld]
# Options for mysqld process:
ndbcluster                      # run NDB storage engine

[mysql_cluster]
# Options for NDB Cluster processes:
ndb-connectstring=198.51.100.2  # location of management server

ファイルを保存して終了します。

これらの変更を有効にするには、MySQLサーバーを再起動します。

sudo systemctl restart mysql

デフォルトでは、MySQLはサーバーの再起動時に自動的に起動するはずです。 そうでない場合は、次のコマンドでこれを修正する必要があります。

sudo systemctl enable mysql

これで、SQLサーバーがCluster Manager / MySQLServerDropletで実行されているはずです。

次のステップでは、いくつかのコマンドを実行して、MySQLClusterのインストールが期待どおりに機能していることを確認します。

ステップ4—MySQLクラスターのインストールを確認する

MySQL Clusterのインストールを確認するには、Cluster Manager /SQLServerノードにログインします。

コマンドラインからMySQLクライアントを開き、次のコマンドを入力して、構成したrootアカウントに接続します。

mysql -u root -p 

プロンプトが表示されたらパスワードを入力し、ENTERを押します。

次のような出力が表示されます。

OutputWelcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.7.22-ndb-7.6.6 MySQL Cluster Community Server (GPL)

Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

MySQLクライアントに入ったら、次のコマンドを実行します。

SHOW ENGINE NDB STATUS \G

これで、接続パラメーターから始まるNDBクラスターエンジンに関する情報が表示されます。

Output
*************************** 1. row ***************************
  Type: ndbcluster
  Name: connection
Status: cluster_node_id=4, connected_host=198.51.100.2, connected_port=1186, number_of_data_nodes=2, number_of_ready_data_nodes=2, connect_count=0
. . .

これは、MySQLクラスターに正常に接続したことを示します。

ここでready_data_nodesの数に注意してください:2。 この冗長性により、データノードの1つに障害が発生した場合でも、MySQLクラスターは動作を継続できます。 また、SQLクエリが2つのデータノード間で負荷分散されることも意味します。

データノードの1つをシャットダウンして、クラスターの安定性をテストできます。 最も簡単なテストは、リカバリプロセスを完全にテストするために、データノードDropletを再起動することです。 ノードが再起動してクラスターマネージャーに再接続すると、number_of_ready_data_nodesの値が1に変わり、2に戻るはずです。

MySQLプロンプトを終了するには、quitと入力するか、CTRL-Dを押します。

これは、MySQLクラスター、サーバー、およびクライアントが機能していることを示す最初のテストです。 次に、クラスターが正しく機能していることを確認するために、追加のテストを実行します。

次のコマンドを使用して、クラスタ管理コンソールndb_mgmを開きます。

ndb_mgm

次の出力が表示されます。

Output-- NDB Cluster -- Management Client --
ndb_mgm>

コンソールに入ったら、コマンドSHOWを入力し、ENTERを押します。

SHOW

次の出力が表示されます。

OutputConnected to Management Server at: 198.51.100.2:1186
Cluster Configuration
---------------------
[ndbd(NDB)] 2 node(s)
id=2    @198.51.100.0  (mysql-5.7.22 ndb-7.6.6, Nodegroup: 0, *)
id=3    @198.51.100.1  (mysql-5.7.22 ndb-7.6.6, Nodegroup: 0)

[ndb_mgmd(MGM)] 1 node(s)
id=1    @198.51.100.2  (mysql-5.7.22 ndb-7.6.6)

[mysqld(API)]   1 node(s)
id=4    @198.51.100.2  (mysql-5.7.22 ndb-7.6.6)

上記は、node-idの2と3に接続された2つのデータノードがあることを示しています。 node-id 1を備えた1つの管理ノードと、node-id4を備えた1つのMySQLサーバーもあります。 次のようにコマンドSTATUSを使用して番号を入力すると、各IDに関する詳細情報を表示できます。

2 STATUS
``` 

The above command shows you the status, MySQL version, and NDB version of node 2:

```
[secondary_label Output]
Node 2: started (mysql-5.7.22 ndb-7.6.6)
```

To exit the management console type `quit`, and then hit `ENTER`.

The management console is very powerful and gives you many other options for administering the cluster and its data, including creating an online backup. For more information consult the [official MySQL documentation](https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-management.html).

At this point, you’ve fully tested your MySQL Cluster installation. The concluding step of this guide shows you how to create and insert test data into this MySQL Cluster.

## Step 5 — Inserting Data into MySQL Cluster

To demonstrate the cluster’s functionality, let's create a new table using the NDB engine and insert some sample data into it. Note that in order to use cluster functionality, the engine must be specified explicitly as **NDB**. If you use InnoDB (default) or any other engine, you will not make use of the cluster.

First, let's create a database called `clustertest` with the command:

```custom_prefix(mysql>)
CREATE DATABASE clustertest;
```

Next, switch to the new database:

```custom_prefix(mysql>)
USE clustertest;
```

Now, create a simple table called `test_table` like this:

```custom_prefix(mysql>)
CREATE TABLE test_table (name VARCHAR(20), value VARCHAR(20)) ENGINE=ndbcluster;
```

We have explicitly specified the engine `ndbcluster` in order to make use of the cluster. 

Now, we can start inserting data using this SQL query:

```custom_prefix(mysql>)
INSERT INTO test_table (name,value) VALUES('some_name','some_value');
```

To verify that the data has been inserted, run the following select query:

```custom_prefix(mysql>)
SELECT * FROM test_table;
```

When you insert data into and select data from an `ndbcluster` table, the cluster load balances queries between all the available data nodes. This improves the stability and performance of your MySQL database installation.

You can also set the default storage engine to `ndbcluster` in the `my.cnf` file that we edited previously. If you do this, you won’t need to specify the `ENGINE` option when creating tables. To learn more, consult the MySQL [Reference Manual](https://dev.mysql.com/doc/refman/5.7/en/storage-engine-setting.html).

## Conclusion

In this tutorial, we’ve demonstrated how to set up and configure a MySQL Cluster on Ubuntu 18.04 servers. It’s important to note that this is a minimal, pared-down architecture used to demonstrate the installation procedure, and there are many advanced options and features worth learning about before deploying MySQL Cluster in production (for example, performing backups). To learn more, consult the official [MySQL Cluster  documentation](https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster.html).