Ubuntu 18.04でマルチノードMySQL Clusterを作成する方法

前書き

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

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

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

前提条件

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

*同じDigitalOceanデータセンター*で、*プライベートネットワークが有効になっている*以下のドロップレットを作成します。

  • https://www.digitalocean.com/docs/networking/private-networking/quickstart/ [プライベートネットワーク]が有効になっている3つのUbuntu 18.04ドロップレット

  • 各ドロップレットにsudo特権が設定されている非ルートユーザー。 これを行う方法については、https://www.digitalocean.com/community/tutorials/initial-server-setup-with-ubuntu-18-04 [Ubuntu 18.04を使用した初期サーバー設定]で学習できます。

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

  • `++`は最初のMySQL Clusterデータノードになります

  • `++`は2番目のデータノードになります

  • `++`はCluster ManagerとMySQLサーバーノードになります

Dropletsをスピンアップし、非ルートユーザーを構成し、3つのノードのIPアドレスを書き留めたら、このチュートリアルを開始できます。

手順1-Cluster Managerのインストールと構成

まず、MySQL Cluster Managerである「+ ndb_mgmd +」をダウンロードしてインストールします。

Cluster Managerをインストールするには、最初に公式のMySQL Cluster http://dev.mysql.com/downloads/cluster/ [ダウンロードページ]から適切な `+ .deb +`インストーラファイルを取得する必要があります。

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

  • DEB Package、NDB Management Server *が表示されるまでスクロールダウンし、(デバッグシンボルが必要な場合を除き) `+ dbgsym `が含まれていないものの* Download *リンクをクリックします。 [ダウンロードの開始]ページが表示されます。 ここで、*いいえ、ダウンロードを開始します*を右クリックし、リンクを ` .deb +`ファイルにコピーします。

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

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

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

sudo dpkg -i mysql-cluster-community-management-server_ubuntu18.04_amd64.deb

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

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

Cluster Managerドロップレットで、このファイルが存在する `+ / 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= # Hostname of the manager
datadir=/var/lib/mysql-cluster  # Directory for the log files

[ndbd]
hostname= # 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= # 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= # In our case the MySQL server/client is on the same Droplet as the cluster manager

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

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

これは、MySQL Clusterの簡略化された最小構成ファイルです。 本番環境のニーズに応じて、このファイルのパラメーターをカスタマイズする必要があります。 完全に設定された `+ ndb_mgmd +`設定ファイルのサンプルについては、MySQL Cluster https://dev.mysql.com/doc/mysql-cluster-excerpt/5.7/en/mysql-cluster-config-starting.html [ドキュメント]。

上記のファイルでは、適切なセクションにインスタンスを追加することにより、データノード( + 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 Unitファイルを開いて編集します。

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

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

sudo systemctl enable ndb_mgmd

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

sudo systemctl start ndb_mgmd

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

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 + MySQL Cluster Managementサーバーがsystemdサービスとして実行されていることを示しています。

Cluster Managerを設定する最後の手順は、プライベートネットワーク上の他のMySQL Clusterノードからの着信接続を許可することです。

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

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

sudo ufw allow from
sudo ufw allow from

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

OutputRule added

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

手順2-データノードのインストールと構成

このステップでは、 + ndbd + MySQL Clusterデータノードデーモンをインストールし、ノードがCluster Managerと通信できるようにノードを設定します。

データノードのバイナリをインストールするには、最初に公式のMySQL http://dev.mysql.com/downloads/cluster/ [ダウンロードページ]から適切な `+ .deb +`インストーラーファイルを取得する必要があります。

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

  • DEBパッケージ、NDBデータノードバイナリ*が表示されるまでスクロールダウンし、(デバッグシンボルが必要でない限り) `+ dbgsym `を含まない*ダウンロード*リンクをクリックします。 [ダウンロードの開始]ページが表示されます。 ここで、*いいえ、ダウンロードを開始します*を右クリックし、リンクを ` .deb +`ファイルにコピーします。

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

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

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

sudo apt update
sudo apt install libclass-methodmaker-perl

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

sudo dpkg -i mysql-cluster-community-data-node_ubuntu18.04_amd64.deb

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

sudo nano /etc/my.cnf

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

/etc/my.cnf

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

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 ':1186'
2018-07-18 19:48:21 [ndbd] INFO     -- Angel allocated nodeid: 2

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

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

このドロップレットを設定するときに「+ ufw 」ファイアウォールを設定しなかった場合、「 ndbd +」用のsystemdサービスの設定に進むことができます。

Cluster Managerおよびその他のデータノードからの着信接続を許可するルールを追加します。

sudo ufw allow from
sudo ufw allow from

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

OutputRule added

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

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

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

sudo pkill -f ndbd

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

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

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

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

次に、 `+ daemon-reload +`を使用してsystemdのマネージャー設定をリロードします。

sudo systemctl daemon-reload

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

sudo systemctl enable ndbd

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

sudo systemctl start ndbd

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

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 + MySQL Clusterデータノードデーモンがsystemdサービスとして実行されていることを示しています。 これで、データノードは完全に機能し、MySQL Cluster Managerに接続できるはずです。

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

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

UbuntuのAPTリポジトリで利用できるような標準のMySQLサーバーは、MySQL ClusterエンジンNDBをサポートしていません。 つまり、このチュートリアルでインストールした他のMySQL Clusterソフトウェアにパッケージ化されたカスタムSQLサーバーをインストールする必要があります。

再度、公式のMySQL Cluster http://dev.mysql.com/downloads/cluster/ [ダウンロードページ]からMySQL Cluster Serverバイナリを取得します。

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

  • DEBバンドル*が表示されるまで下にスクロールし、*ダウンロード*リンクをクリックします(リストの最初に表示されるはずです)。 [ダウンロードの開始]ページが表示されます。 ここで、*いいえ、ダウンロードを開始してください*を右クリックし、リンクを `+ .tar +`アーカイブにコピーします。

次に、Cluster Manager Droplet(このチュートリアルでは「+」)にログインし、この「 .tar +」アーカイブをダウンロードします(実稼働環境でCluster Managerと同じノードにMySQL Serverをインストールしていることを思い出してください)これらのデーモンを異なるノードで実行する必要があります):

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

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

mkdir install

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

tar -xvf mysql-cluster_ubuntu18.04_amd64.deb-bundle.tar -C install/

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

cd install

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

sudo apt update
sudo apt install libaio1 libmecab2

ここで、抽出したばかりの `+ tar +`アーカイブにバンドルされているMySQL Clusterの依存関係をインストールする必要があります。

sudo dpkg -i mysql-common_ubuntu18.04_amd64.deb
sudo dpkg -i mysql-cluster-community-client_ubuntu18.04_amd64.deb
sudo dpkg -i mysql-client_ubuntu18.04_amd64.deb
sudo dpkg -i mysql-cluster-community-server_ubuntu18.04_amd64.deb

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

`+ dpkg +`を使用してMySQLサーバーバイナリをインストールできるようになりました。

sudo dpkg -i mysql-server_ubuntu18.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=  # location of management server

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

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

sudo systemctl restart mysql

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

sudo systemctl enable mysql

これで、SQL ServerがCluster Manager / MySQL Server Dropletで実行されているはずです。

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

ステップ4-MySQL Clusterインストールの検証

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

コマンドラインから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=, connected_port=1186, number_of_data_nodes=2, number_of_ready_data_nodes=2, connect_count=0
. . .

これは、MySQL Clusterに正常に接続されたことを示しています。

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

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

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

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

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

ndb_mgm

次のような出力が表示されるはずです。

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

コンソール内にコマンド「+ SHOWs」を入力し、「+ ENTER」を押します。

SHOW

次のような出力が表示されるはずです。

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

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

[mysqld(API)]   1 node(s)
id=4    @  (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

上記のコマンドは、ノード2のステータス、MySQLバージョン、およびNDBバージョンを表示します。

OutputNode 2: started (mysql-5.7.22 ndb-7.6.6)

管理コンソールを終了するには、「+ quit」と入力し、「+ ENTER」を押します。

管理コンソールは非常に強力で、オンラインバックアップの作成など、クラスターとそのデータを管理するための多くの他のオプションを提供します。 詳細については、https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-management.html [公式MySQLドキュメント]を参照してください。

この時点で、MySQL Clusterインストールを完全にテストしました。 このガイドの最後のステップでは、テストデータを作成してこのMySQL Clusterに挿入する方法を示します。

手順5-MySQL Clusterへのデータの挿入

クラスターの機能を実証するために、NDBエンジンを使用して新しいテーブルを作成し、サンプルデータを挿入します。 クラスタ機能を使用するには、エンジンを* NDB *として明示的に指定する必要があることに注意してください。 InnoDB(デフォルト)または他のエンジンを使用する場合、クラスターを使用しません。

最初に、コマンドを使用して「+ clustertest +」というデータベースを作成します。

CREATE DATABASE clustertest;

次に、新しいデータベースに切り替えます。

USE clustertest;

次に、次のような `+ test_table +`という簡単なテーブルを作成します。

CREATE TABLE test_table (name VARCHAR(20), value VARCHAR(20)) ENGINE=ndbcluster;

クラスターを利用するために、エンジン+ ndbcluster +を明示的に指定しました。

これで、次のSQLクエリを使用してデータの挿入を開始できます。

INSERT INTO test_table (name,value) VALUES('some_name','some_value');

データが挿入されたことを確認するには、次の選択クエリを実行します。

SELECT * FROM test_table;

`+ ndbcluster +`テーブルにデータを挿入し、そこからデータを選択すると、クラスターは利用可能なすべてのデータノード間でクエリを負荷分散します。 これにより、MySQLデータベースのインストールの安定性とパフォーマンスが向上します。

以前に編集した `+ my.cnf `ファイルで、デフォルトのストレージエンジンを ` ndbcluster `に設定することもできます。 これを行う場合、テーブルを作成するときに ` ENGINE +`オプションを指定する必要はありません。 詳細については、MySQL https://dev.mysql.com/doc/refman/5.7/en/storage-engine-setting.html [リファレンスマニュアル]を参照してください。

結論

このチュートリアルでは、Ubuntu 18.04サーバーでMySQL Clusterをセットアップおよび構成する方法を示しました。 これはインストール手順を示すために使用される最小限の簡略化されたアーキテクチャであり、MySQL Clusterを実稼働環境にデプロイする前に(バックアップの実行など)学ぶ価値のある多くの高度なオプションと機能があることに注意することが重要です。 詳細については、公式のhttps://dev.mysql.com/doc/refman/5.7/en/mysql-cluster.html[MySQL Cluster documentation]をご覧ください。

前の投稿:Ubuntu 16.04でDockerマシンを使用してリモートDockerホストをプロビジョニングおよび管理する方法
次の投稿:Ubuntu 18.04でLEMPを使用してWordPressをインストールする方法