web-dev-qa-db-ja.com

MySQL Cluster:SQLノードの接続の問題

MySQLクラスターには3つのホストがあり、1つはマネージャーノードを持ち、他の2つはそれぞれデータノードとSQ​​Lノードの両方です。マネージャーへの接続は可能ですが、[mysqld]ではなく[ndbd]としてのみ... SQLノードとしてではなく、データノードとしてマネージャーに接続することを意味します。 「接続されていない」部分以外はすべて問題なく表示され、エラーメッセージも表示されません。だから私の質問は、なぜマネージャーノードが各マシンをデータノードとしてのみ認識し、mysqlノードとしても認識しないのですか?

以下に、ndb_mgmクラスター構成と、それに続くconfig.iniの内容を示します。


クラスタ構成
 --------------------- 
 [ndbd(NDB)] 2ノード(s)
 id = 2 @ 10.0.40.105(mysql-5.5.25 ndb-7.2.7、Nodegroup:0、Master)
 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 default] 
#すべてのデータノードのndbdプロセスに影響するオプション:
 NoOfReplicas = 2#レプリカの数
 
 [tcp default] 
#TCP/IPオプション:
 
 [ndb_mgmd] 
#管理プロセスオプション:
 hostname = 10.0.40.119#ホスト名またはIPアドレスMGMノード
 datadir =/var/lib/mysql-cluster#MGMノードログファイルのディレクトリ
 NodeId = 1 
 
 [ndbd] 
 #データノード1のオプション:
#(データノードごとに1つの[ndbd]セクション)
 hostname = 10.0.40.105#ホスト名またはIPアドレス
 datadir =/usr/local/mysql/data#このデータノードのデータファイルのディレクトリ
 NodeId = 2 
 
 [ndbd] 
#データノード2のオプション:
 hostname = 10.0.40.100#ホスト名またはIPアドレス
 datadir =/usr/local/mysql/data#このデータノードのデータファイルのディレクトリ
 N odeId = 3 
 
#ストレージノードあたり[mysqld] 
 [mysqld] 
 [mysqld] 


/etc/my.cnf:

 [mysqld] 
 ndbcluster 
 ndb-connectstring = 10.0.40.119 
 
 [mysql_cluster] 
 ndb-connectstring = 10.0。 40.119 


ps -ef | grep mysqld | grep -v grep

Output of: ps -ef | grep mysqld | grep -v grep

4
sswahn

したがって、解決策は競合するmyslqdでした。どうやらmysqlにはmysqldがあり、mysqlクラスターにはmysqldがあり、それらが競合しているか、間違ったものを実行していた。最後に、mysqlをアンインストールしてmysqlクラスターを再インストールしましたが、完全に機能しました。この問題のトラブルシューティングを支援してくれたRolandoMySQLDBAに感謝します。

4
sswahn

/ *このクエリは、実行されていないノードの数を返し、すべてのノードが実行されている場合は0を返します* /

SELECT 
  @total := 
  (SELECT 
    VARIABLE_VALUE 
  FROM
    information_schema.`GLOBAL_STATUS` 
  WHERE VARIABLE_NAME = 'NDB_NUMBER_OF_DATA_NODES') AS `Total`,
  @running := 
  (SELECT 
    VARIABLE_VALUE 
  FROM
    information_schema.`GLOBAL_STATUS` 
  WHERE VARIABLE_NAME = 'NDB_NUMBER_OF_READY_DATA_NODES') AS `Running`,
  @total - @running AS `Nodes_Not_Running` ;

このクエリは何を返しますか?

%Ndb_number_of_ready_data_nodes%データノードのうち%Ndb_number_of_data_nodes%のみが実行されています。 ndb_mgm -e showを実行して、使用できないデータノードを表示します。

0
Mahesh Patil