2012-05-16 28 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/

找到