上文《MySQL數據庫管理(一)MySQL Cluster集群簡介》對MySQL Cluster集群做了簡要介紹,本文將教大家一步步搭建單機環境下的MySQL數據庫集群。
一、單機環境搭建
首先到MySQl官網上下載所需的安裝包,然後將下載得到的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
[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
結果如下: