MySQL数据库管理(二)单机环境下MySQL Cluster的安装

上文MySQL数据库管理(一)MySQL Cluster集群简介对MySQL Cluster集群做了简要介绍,本文将教大家一步步搭建单机环境下的MySQL数据库集群。


一、单机环境搭建

    首先到MySQl官网上 下http://www.mysql.com/downloads/Cluster/下载所需的安装包,然后将下载得到的ZIP包解压到C:\ypl\mysql\mysqlc


    这个MySQL数据库的集群由一个MySQL服务引擎(mysqlds)、两个数据节点(ndbd)和一个管理节点(ndb_mgmd)组成,所有的节点都运行在同一台机器上。依次建立以下文件夹:
C:\ypl\mysql\my_Cluster
C:\ypl\mysql\my_Cluster\ndb_data
C:\ypl\mysql\my_Cluster\mysqld_data\ndbinfo
C:\ypl\mysql\my_Cluster\conf

之后,在C:\ypl\mysql\my_Cluster\conf文件夹中创建下述两个配置文件:
(1)my.cnf
    内容如下:

[mysqld]
ndbCluster
datadir=C:\\ypl\\mysql\\my_Cluster\\mysqld_data
basedir=C:\\ypl\\mysql\\mysqlc
port=3306
(2)config.ini
    内容如下:

[ndb_mgmd]
hostname=localhost
datadir=C:\ypl\mysql\my_Cluster\ndb_data
id=1

[ndbd default]
noofreplicas=2
datadir=C:\ypl\mysql\my_Cluster\ndb_data

[ndbd]
hostname=localhost
id=3

[ndbd]
hostname=localhost
id=4

[mysqld]
hostname=localhost

mysqld进程需要一个名为mysql的系统数据库,以存储必要的系统数据和用户数据。故需要进行以下操作:

  • C:\ypl\mysql\mysqlc\data\mysql整个文件夹复制到C:\ypl\mysql\my_Cluster\ndb_data目录下。
  • 将C:\ypl\mysql\mysqlc\data\ndbinfo整个文件夹复制到C:\ypl\mysql\my_Cluster\ndb_data目录下。

在上述工作完成后,即可启动MySQL Cluster。


二、启动节点:管理节点-->数据节点-->SQl节点

(1)启动管理节点

进入命令行工具洁面后依次输入命令:

cd  C:\ypl\mysql\my_Cluster
start /B C:\ypl\mysql\mysqlc\bin\ndb_mgmd -f conf\config.ini --initial --configdir=C:\ypl\mysql\my_Cluster\conf

结果如下:

技术分享

技术分享


(2)启动数据节点

  • 启动第一个数据节点,输入命令:

start /B C:\ypl\mysql\mysqlc\bin\ndbd -c localhost:1186

  • 启动第二个数据节点,输入命令:

start /B C:\ypl\mysql\mysqlc\bin\ndbd -c localhost:1186


(3)启动MySQl服务引擎

输入命令:

start /B C:\ypl\mysql\mysqlc\bin\mysqld --defaults-file=conf\my.cnf

查看数据节点是否启动完毕:

C:\ypl\mysql\mysqlc\bin\ndb_mgm  -e show

结果如下:

技术分享

技术分享

技术分享

技术分享

各个节点启动成功后,可以在进程里看到所有节点的进程。启动任务管理器,将看到结果,如图:

技术分享

连接到MySQL服务器,输入命令:

C:\ypl\mysql\mysqlc\bin\mysql -u root -p123456



若连接成功,将出现如下界面:

技术分享

三、测试

创建数据库yplbeyond(注意使用ndb),在该数据库内创建表users,并插入数据

drop database if exists yplbeyond;

create database yplbeyond;
use yplbeyond;
create table users(
id int(3) auto_increment not null primary key,
uid char(50) not null,
pwd char(50) not null,
realname char(10) not null,
phone char(10) not null,
mail char(30) not null,
date datetime null
) engine=ndb;;
insert into users values('','人 民 大 学','rucedu','lizi','00000000','11@11','');
select * from users;


技术分享

技术分享

技术分享

技术分享

技术分享


注意此时与在MySQL中建表不同,需要在表的末尾加上“engine=ndb;”,因为使用的是MySQL Cluster,标的存储引擎是基于内存的NDB,而不是InnoDB。在文件夹ypl内搜索,可以查到C:\ypl\mysql\my_Cluster\ndb_data\ypl 目录下有刚创建的表。同时应注意,当数据节点分布在不同机器上时,按InnoDB引擎存储的数据在其它数据节点上查不到,可以做相应的实验来验证。

MySQL Cluster的服务必须手动停止,服务停止后,其它集群节点可以使用管理节点(ndb_mgm)来停止。输入命令:

C:\ypl\mysql\mysqlc\bin\ndb_mgm -e shutdown

C:\ypl\mysql\mysqlc\bin\mysqladmin -u root -p123456 shutdown

结果如下:

技术分享

技术分享

技术分享



郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。