mysql cluster 是mysql数据库主要适合于分布式计算环境的高实用、高冗余这两种版本。mysql cluster 采用了ndb cluster 存储引擎,允许在一个 cluster 中对mysql服务器进行与运行。
在myql 5.0及以上的二进制版本中、以及与最新的linux版本兼容的rpm中提供了该存储引擎。(注意,要想获得mysql cluster 的功能,必须安装 mysql-server 和 mysql-max rpm)。
目前能够运行mysql cluster 的操作系统有linux、mac os x和solaris(一些用户通报成功地在freebsd上运行了mysql cluster ,但mysql ab公司尚未正式支持该特性)。
mysql cluster(mysql 集群) 搭建中如何创建数据库表
与没有使用 cluster的mysql相比,在mysql cluster内操作数据的方式没有太大的区别。执行这类操作时应记住两点:
表必须用engine=ndb或engine=ndbcluster选项创建,或用alter table选项更改,以使用ndb cluster存储引擎在 cluster内复制它们。如果使用mysqldump的输出从已有数据库导入表,可在文本编辑器中打开sql脚本,并将该选项添加到任何表创建语句,或用这类选项之一替换任何已有的engine(或type)选项。
另外还请记住,每个ndb表必须有一个主键。如果在创建表时用户未定义主键,ndb cluster存储引擎将自动生成隐含的主键。(注释:该隐含 键也将占用空间,就像任何其他的表索引一样。由于没有足够的内存来容纳这些自动创建的键,出现问题并不罕见)。
下面是一个例子:
在db2上,创建数据表,插入数据:
[db2~]root# mysql -uroot test [db2~]mysql> create table city( [db2~]mysql> id mediumint unsigned not null auto_increment primary key, [db2~]mysql> name varchar(20) not null default '' [db2~]mysql> ) engine = ndbcluster default charset utf8; [db2~]mysql> insert into city values(1, 'city1'); [db2~]mysql> insert into city values(2, 'city2');
在db3上,查询数据:
[db3~]root# mysql -uroot test [db2~]mysql> select * from city; +-----------+ |id | name | +-----------+ |1 | city1 | +-----------+ |2 | city2 | +-----------+
安全关闭
要想关闭 cluster,可在mgm节点所在的机器上,在shell中简单地输入下述命令:
[db1~]root# /usr/local/mysql/ndb_mgm -e shutdown运行以下命令关闭sql节点的mysqld服务:
[db2~]root# /usr/local/mysql/bin/mysqladmin -uroot shutdown
其他
关于mysql cluster更多详细的资料以及备份等请参见mysql手册的“mysql cluster(mysql 集群)”章节。