Ubuntu18.04でマルチノードMySQLクラスターを作成する方法
序章
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.2
ClusterManagerと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
これは、ndbd
MySQLClusterデータノードデーモンが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-id
4を備えた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).