このセクションでは、構成ファイルの作成と編集によるインストール済み MySQL Cluster の手動構成について説明します。
MySQL Cluster (NDB バージョン 7.3 以降) には、別のアプリケーションでテキストファイルを編集せずに構成を行うために使用できる GUI インストーラも用意されています。詳細は、セクション18.2.1「MySQL Cluster Auto-Installer」を参照してください。
ここで使用する 4 ノードおよび 4 ホストの MySQL Cluster (クラスタノードとホストコンピュータを参照してください) では、4 つ (ノードホストごとに 1 つずつ) の構成ファイルを作成する必要があります。
-
個々のデータノードまたは SQL ノードには
my.cnf
ファイルが必要です。このファイルは、管理ノードが配置されたノードを指定する接続文字列と、このホスト (データノードをホストしているマシン) の MySQL サーバーに対してNDBCLUSTER
ストレージエンジンを有効にするように指示する行の 2 つの情報を提供します。接続文字列の詳細は、セクション18.3.2.3「MySQL Cluster の接続文字列」を参照してください。
管理ノードには
config.ini
ファイルが必要です。このファイルは、保持するレプリカの数、各データノードのデータおよびインデックスに割り当てるメモリーの量、データノードの場所、各データノードのデータを保存するディスク上の場所、および SQL ノードの場所を指示します。
データノードと SQL ノードの構成
データノードに必要な my.cnf
ファイルはかなり単純です。この構成ファイルは、/etc
ディレクトリに配置され、任意のテキストエディタを使用して編集できます。(このファイルが存在しない場合は作成してください。)例:
shell> vi /etc/my.cnf
ここでは、vi を使用してこのファイルを作成しますが、どのテキストエディタでも同じように機能します。
このセットアップ例の各データノードおよび SQL ノードでは、my.cnf
はこのようになります。
[mysqld]
# Options for mysqld process:
ndbcluster # run NDB storage engine
[mysql_cluster]
# Options for MySQL Cluster processes:
ndb-connectstring=192.168.0.10 # location of management server
上記の情報を入力したら、このファイルを保存してテキストエディタを終了します。これを、データノード 「A」、データノード「B」、および SQL ノードをホストしているマシンで実行します。
上記の my.cnf
ファイルの [mysqld]
および [mysql_cluster]
セクションの ndbcluster
および ndb-connectstring
パラメータを使用して mysqld プロセスを起動したあとは、クラスタが実際に起動しないと、CREATE TABLE
または ALTER TABLE
ステートメントを実行できません。そうでない場合、これらのステートメントはエラーで失敗します。これは意図的なものです。
管理ノードの構成
管理ノードの構成では、最初のステップとして構成ファイルを配置するディレクトリを作成し、その後構成ファイル自体を作成します。例 (root
として実行します):
shell> mkdir /var/lib/mysql-cluster
shell> cd /var/lib/mysql-cluster
shell> vi config.ini
ここで使用する典型的なセットアップでは、config.ini
ファイルは次のようになります。
[ndbd default]
# Options affecting ndbd processes on all data nodes:
NoOfReplicas=2 # Number of replicas
DataMemory=80M # How much memory to allocate for data storage
IndexMemory=18M # How much memory to allocate for index storage
# For DataMemory and IndexMemory, we have used the
# default values. Since the "world" database takes up
# only about 500KB, this should be more than enough for
# this example Cluster setup.
[tcp default]
# TCP/IP options:
portnumber=2202 # This the default; however, you can use any
# port that is free for all the hosts in the cluster
# Note: It is recommended that you do not specify the port
# number at all and simply allow the default value to be used
# instead
[ndb_mgmd]
# Management process options:
hostname=192.168.0.10 # Hostname or IP address of MGM node
datadir=/var/lib/mysql-cluster # Directory for MGM node log files
[ndbd]
# Options for data node "A":
# (one [ndbd] section per data node)
hostname=192.168.0.30 # Hostname or IP address
datadir=/usr/local/mysql/data # Directory for this data node's data files
[ndbd]
# Options for data node "B":
hostname=192.168.0.40 # Hostname or IP address
datadir=/usr/local/mysql/data # Directory for this data node's data files
[mysqld]
# SQL node options:
hostname=192.168.0.20 # Hostname or IP address
# (additional mysqld connections can be
# specified for this node for various
# purposes such as running ndb_restore)
world
データベースは https://dev.mysql.com/doc/ からダウンロードできます (「Examples」 の下にあります)。
すべての構成ファイルを作成し、最小限のオプションを指定したら、クラスタの起動とすべてのプロセスの実行確認に進む準備が整います。これを行う方法については、セクション18.2.5「MySQL Cluster の初期起動」で説明します。
使用可能な MySQL Cluster 構成パラメータとその使用方法の詳細は、セクション18.3.2「MySQL Cluster の構成ファイル」およびセクション18.3「MySQL Cluster の構成」を参照してください。MySQL Cluster のバックアップ作成に関する構成については、セクション18.5.3.3「MySQL Cluster バックアップ用の構成」を参照してください。
クラスタ管理ノードのデフォルトポートは 1186 です。データノードのデフォルトポートは 2202 です。ただし、クラスタではすでに開放されているポートからデータノードのポートを自動的に割り当てることができます。