Heim  >  Artikel  >  Datenbank  >  MySQLCluster搭建中对数据库表的创建

MySQLCluster搭建中对数据库表的创建

WBOY
WBOYOriginal
2016-06-07 14:52:14985Durchsuche

MySQL Cluster 是MySQL数据库主要适合于分布式计算环境的高实用、高冗余这两种版本。MySQL Cluster 采用了NDB Cluster 存储引擎,允许在一个 Cluster 中对MySQL服务器进行与运行。 在MyQL 5.0及以上的二进制版本中、以及与最新的Linux版本兼容的RPM中提供了

  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 集群)”章节。

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn