web-dev-qa-db-ja.com

ndb_descを使用してMySQL NDBマネージャーに接続できません

基本的なMySQL NDBクラスターを実行しています-うまく機能します。マネージャー、データ、SQLノードはすべてOKです。 1つのマネージャー、2つのSQLノード、4つのデータノード。 2つのデータノードは最初の作成からのもので、2つは追加しようとしているノードです。

環境的には、これが私が持っているものです(すべてのノードに適用されます)。

OS: CentOS 7
SELinux: disabled
firewalld : not installed
MySQL version: mysql-5.6.28
NDB: ndb-7.4.10

構成のビューは次のようになります。

[root@mysql-ndb-manager ~]# ndb_mgm -e "SHOW"
Connected to Management Server at: localhost:1186
Cluster Configuration
---------------------
[ndbd(NDB)] 4 node(s)
id=2    @10.133.16.108  (mysql-5.6.28 ndb-7.4.10, Nodegroup: 0, *)
id=3    @10.133.16.196  (mysql-5.6.28 ndb-7.4.10, Nodegroup: 0)
id=6    @10.133.16.121  (mysql-5.6.28 ndb-7.4.10, Nodegroup: 1)
id=7    @10.133.16.112  (mysql-5.6.28 ndb-7.4.10, Nodegroup: 1)

[ndb_mgmd(MGM)] 1 node(s)
id=1    @10.133.16.179  (mysql-5.6.28 ndb-7.4.10)

[mysqld(API)]   3 node(s)
id=4    @10.133.16.117  (mysql-5.6.28 ndb-7.4.10)
id=5    @10.133.16.180  (mysql-5.6.28 ndb-7.4.10)
id=8 (not connected, accepting connect from any Host)

NoOfReplicasは2に設定されているため、このノード数は問題ありません。 NoOfReplicasを2に設定すると、データノードを1つ追加しても機能しないことをすぐに理解しました。

ご覧のとおり、ndb_descなどに割り当てることができる使用可能なノードID(8)があります。

追加しようとしている新しいノード:

IDs: 6 & 7

私の知る限り、これらは適切に構成されていますが、データはありません。それらは適切に開始され、クラスターの一部としてリストされます。私にとってうまくいかないのは、再配布プロセスです。

ドキュメントは非常に理解しやすいです。つまり、マネージャーに接続し、テーブル構造を変更してデータが新しいノードに配布されるようにするには、ndb_descを使用する必要があります。

必要なコマンドを実行すると、次のようになります。

[root@mysql-ndb-manager ~]# ndb_desc -c 10.133.16.179:1186 my_table -d 
appdb -p --ndb-nodeid=8
Unable to connect to management server.

NDBT_ProgramExit: 1 - Failed```

同様の問題を抱えている他の人を見てきましたが、ほとんどの場合、割り当て可能なノードIDが不足しているようです。私の知る限り、これは私には当てはまりません。

マネージャーのIPアドレス、localhost、127.0.0.1で接続してみました。
ローカルおよびリモートで試しました。ドキュメントからの正確なコマンド、つまりデータベースとテーブルの名前を使用しようとしましたが、機能しません(予想どおり、私は推測しています)。

私が現在持っている唯一のデータは次のとおりです:

Database: `appdb`
Table: `my_table` (ID auto_increment and `name` char(25))
Data: 14 rows, random names

データは問題なく古い/動作しているノード間で複製されます。つまり、データベースを作成したり、いずれかのSQLコマンドを実行したりすると、変更がすぐに他のノードに反映されます。オフラインノードは期待どおりにオフラインとして表示され、それらを元に戻すとオンラインとして表示されます。

問題なく機能するローリング再起動スクリプトもあるので、クラスタリング側は問題ないようです。

最後に、ここに私のマネージャーの設定ファイルがあります:

[ndb_mgmd default]
DataDir=/var/lib/mysql-cluster

[mgm]
HostName=10.133.16.179

[ndbd default]
NoOfReplicas=2
DataMemory=256M
IndexMemory=128M
DataDir=/var/lib/mysql-cluster

[ndbd]
HostName=10.133.16.108

[ndbd]
HostName=10.133.16.196

[mysqld]
HostName=10.133.16.117

[mysqld]
HostName=10.133.16.180

[ndbd]
HostName=10.133.16.121

[ndbd]
HostName=10.133.16.112

[mysqld]

他に何が原因ですか?

ありがとう!

2
digitalformula

説明にエラーを指すものは何もありません。すべてが正常に見えます。 ndb_descを起動したときに、クラスタログに書き込まれたエラーメッセージを投稿できるとよいでしょう。

0