3

ガイドに従って、Ubuntu で MySQL Cluster を作成しました: http://bieg.wordpress.com/2008/08/03/mysql-clustering-ubuntu/

ノード (MGM と NDB を含むノード、およびその他の NDB ノード) を正しく初期化すると、次のようにndb_mgm> show;返されます。

Connected to Management Server at: 10.168.222.24:1186
Cluster Configuration
---------------------
[ndbd(NDB)] 2 node(s)
id=2    @10.168.222.24  (mysql-5.1.51 ndb-7.1.9, Nodegroup: 0)
id=3    @10.160.91.224  (mysql-5.1.51 ndb-7.1.9, Nodegroup: 0, Master)

[ndb_mgmd(MGM)] 1 node(s)
id=1    @10.168.222.24  (mysql-5.1.51 ndb-7.1.9)

[mysqld(API)]   1 node(s)
id=4    @10.168.222.24  (mysql-5.1.51 ndb-7.1.9)

ただし、クラスターをテストするときに、両方のノードでデータベースを作成しましたが、ノードで作成したテーブルは、コンテンツも他のノードにも反映されません。

何が問題なのですか?

ありがとうございました

4

1 に答える 1

3

MySQL 5.1 のデフォルトでは、テーブルは MyISAM ストレージ エンジンを使用して作成されます (MySQL 5.5 ではデフォルトが InnoDB に変更されます)。ndb/cluster 以外のストレージを使用して作成されたテーブルは、単一の MySQL サーバーに対してローカルです。

データ ノードにデータを格納して、クラスタ内のすべての MySQL サーバーから表示できるようにするには、NDB をストレージ エンジンとして使用するように指定する必要があります。たとえば、テーブルを作成するとき...

CREATE TABLE simples (id INT NOT NULL PRIMARY KEY) ENGINE=ndb;

または既存のテーブルを移行するには...

ALTER TABLE simples ENGINE=ndb;

あなたの場合、ndb_mgm からの出力は、単一の MySQL サーバーしかないことを示しています。config.ini ファイルを編集して [mysqld] スロットをさらに定義し、追加の mysqld プロセスを開始する必要があります。

データが 1 つのデータ ノードだけに保存​​されていると考える理由は何ですか? engine=ndb で作成した場合、両方にあると確信できます。

あなたがフォローしているブログ投稿は実際には古くなっていることに注意してください (たとえば、「apt-get install mysql-server」で取得した MySQL サーバーを使用してはならず、代わりにクラスターに含まれているものを使用する必要があります。https://www.mysql.com/downloads/cluster/からのパッケージ

7.1 ではなく MySQL Cluster 7.2 をダウンロードして使用します。

より最新の一連の手順は、http://www.clusterdb.com/mysql-cluster/deploying-mysql-cluster-over-multiple-hosts/にあります。

于 2012-05-18T15:48:23.567 に答える