MySQL クラスターには 3 つのホストがあり、1 つはマネージャー ノードを持ち、残りの 2 つはそれぞれデータ ノードと SQL ノードの両方です。マネージャーへの接続は可能ですが、[mysqld] ではなく [ndbd] としてのみ... つまり、マネージャーはそれらをデータ ノードとして認識しますが、SQL ノードとして認識しません。「接続されていない」部分以外はすべて正常に表示され、エラー メッセージは表示されません。私の質問は、マネージャー ノードが各マシンをデータ ノードとしてのみ認識し、mysql ノードとして認識しないのはなぜですか?
以下に、ndb_mgm クラスタ構成とそれに続く config.ini の内容を示します。
クラスタ構成
----------------------
[ndbd(NDB)] 2 ノード
id=2 @10.0.40.105 (mysql-5.5.25 ndb-7.2.7、ノードグループ: 0、マスター)
id=3 @10.0.40.100 (mysql-5.5.25 ndb-7.2.7、ノードグループ: 0)
[ndb_mgmd(MGM)] 1 ノード
ID=1 @10.0.40.119 (mysql-5.5.25 ndb-7.2.7)
【mysqld(API)】2ノード
id=4 (未接続、任意のホストからの接続を受け入れる)
id=5 (未接続、任意のホストからの接続を受け入れる)
config.ini:
[ndbd デフォルト]
# すべてのデータ ノードの ndbd プロセスに影響するオプション:
NoOfReplicas=2 # レプリカの数
[TCP デフォルト]
# TCP/IP オプション:
[ndb_mgmd]
# 管理プロセスのオプション:
hostname=10.0.40.119 # MGM ノードのホスト名または IP アドレス
datadir=/var/lib/mysql-cluster # MGM ノード ログ ファイルのディレクトリ
ノード ID=1
[ndbd]
# データ ノード 1 のオプション:
# (データ ノードごとに 1 つの [ndbd] セクション)
hostname=10.0.40.105 # ホスト名または IP アドレス
datadir=/usr/local/mysql/data # このデータ ノードのデータ ファイルのディレクトリ
ノード ID=2
[ndbd]
# データ ノード 2 のオプション:
hostname=10.0.40.100 # ホスト名または IP アドレス
datadir=/usr/local/mysql/data # このデータ ノードのデータ ファイルのディレクトリ
ノード ID=3
# ストレージ ノードごとに 1 つの [mysqld]
[mysqld]
[mysqld]
/etc/my.cnf:
[mysqld] ndbcluster ndb-connectstring=10.0.40.119 [mysql_cluster] ndb-connectstring=10.0.40.119
mysqld の起動について混乱しています。各ノードを起動するプロセスは次のとおりです。
ndb_mgmd:
ndb_mgmd --initial --skip-config-cache -f /var/lib/mysql-cluster/config.ini ndb_mgm
ndbd/mysqld:
ndbd --initial /etc/init.d/mysql.server 開始