2012-05-16 30 views
3

我創建MySQL簇在Ubuntu以下 引導:http://bieg.wordpress.com/2008/08/03/mysql-clustering-ubuntu/MySQL簇傳播

我正確初始化的節點(與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) 

但是,當我去測試羣集時,我在兩個節點上創建了一個數據庫,但是我在節點中創建的表不會傳播到另一個,也不會傳播到其他內容。

可能是什麼問題?

謝謝

回答

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進程。

爲什麼你認爲數據只存儲在一個數據節點中?如果你使用engine = ndb創建它,那麼我很肯定它是在兩者中。

請注意,您所關注的博客文章實際上已過時(例如,您不能使用「apt-get install mysql-server」獲得的MySQL服務器,但應該使用包括在羣集包從https://www.mysql.com/downloads/cluster/

下載並使用MySQL集羣7.2而不是7.1。

一個更加電流的指令集可以在http://www.clusterdb.com/mysql-cluster/deploying-mysql-cluster-over-multiple-hosts/

找到