window7 MySql Cluster数据库集群配置
MySql Cluster數(shù)據(jù)庫(kù)集群配置
先來(lái)看一張mysql集群的架構(gòu)圖:
上圖一共分了四層:Applications、SQL、Storage、Management。?
?
–Applications主要是指需要連接數(shù)據(jù)庫(kù)的應(yīng)用程序;?
–SQL中每一個(gè)mysqld都是一個(gè)sql節(jié)點(diǎn),Applications需要通過(guò)連接sql節(jié)點(diǎn)來(lái)存儲(chǔ)數(shù)據(jù),您可以把它看成應(yīng)用程序與數(shù)據(jù)庫(kù)集群進(jìn)行數(shù)據(jù)交換的大門(mén)
–Storage有‘倉(cāng)庫(kù)’的意思,所以數(shù)據(jù)都是存在數(shù)據(jù)節(jié)點(diǎn)(ndbd)中的,而且每個(gè)數(shù)據(jù)節(jié)點(diǎn)的數(shù)據(jù)都是一致的,都是一整套最新的數(shù)據(jù)?
–Management中就是管理節(jié)點(diǎn),一個(gè)MySQL中只有一個(gè)管理節(jié)點(diǎn),用來(lái)管理其他節(jié)點(diǎn)
?
配置環(huán)境:
1、?????????windows7系統(tǒng)
2、?????????三臺(tái)電腦或者虛擬機(jī)? Vmware 10 創(chuàng)建3臺(tái)虛擬機(jī)
3、?????????mysql-cluster-gpl-7.4.7-win32
4、?????????全部把防火墻關(guān)了
5、?????????解壓mysql-cluster-gpl-7.4.7-win32
?
擬定節(jié)點(diǎn)機(jī)器:
1、?????????管理節(jié)點(diǎn):????? 192.168.131.128
2、?????????數(shù)據(jù)節(jié)點(diǎn)A:?? 192.168.131.129
3、?????????數(shù)據(jù)節(jié)點(diǎn)B:?? 192.168.131.131
4、?????????SQL節(jié)點(diǎn)A:??? 192.168.131.129
5、?????????SQL節(jié)點(diǎn)B:??? 192.168.131.131
管理節(jié)點(diǎn)機(jī)器配置:
?
管理節(jié)點(diǎn)機(jī)器建立如下文件夾:
1、C:\ProgramFiles\mysqlcluster\datanode\mysql\bin\cluster-data
2、C:\mysql\bin\cluster-logs
3、C:\mysql\mysql-cluster
4、C:\Program Files\MySQL\MySQL Server 5.6\mysql-cluster
?
在C:\mysql\bin路徑下進(jìn)行如下操作:
1、創(chuàng)建config.ini
2、創(chuàng)建my.ini
3、粘帖mysql-cluster-gpl-7.4.7-win32\mysql\bin\ndb_mgm.exe
4、粘帖mysql-cluster-gpl-7.4.7-win32\mysql\bin\ndb_mgmd.exe
?
如下圖所示:
config.ini配置:
?
[NDBDDEFAULT]?
NoOfReplicas=2?
DataDir=C:/ProgramFiles/mysqlcluster/datanode/mysql/bin/cluster-data?
DataMemory=80M?
IndexMemory=18M?
?
[MYSQLDDEFAULT]?
[NDB_MGMDDEFAULT]?
[TCP DEFAULT]?
?
[NDB_MGMD]?
ID=1?
HostName=192.168.131.128#管理節(jié)點(diǎn)服務(wù)器?
# StorageEngines?
DataDir=C:/mysql/bin/cluster-logs?
?
[NDBD]?
ID=2?
HostName=192.168.131.129#MySQL集群db1的IP地址?
DataDir=C:/ProgramFiles/mysqlcluster/datanode/mysql/bin/cluster-data?
?
[NDBD]?
ID=3?
HostName=192.168.131.131#MySQL集群db2的IP地址?
DataDir=C:/ProgramFiles/mysqlcluster/datanode/mysql/bin/cluster-data?
?
[MYSQLD]?
ID=4?
HostName=192.168.131.129
?
[MYSQLD]?
ID=5?
HostName=192.168.131.131
?
?
my.ini配置:
?
[mysql_cluster]
?????? # Options for management node process
?????? config-file=C:/mysql/bin/config.ini
?
==========================配置完成=======================
數(shù)據(jù)節(jié)點(diǎn)配置:
數(shù)據(jù)節(jié)點(diǎn)機(jī)器創(chuàng)建如下文件夾:
1、C:\ProgramFiles\mysqlcluster\datanode\mysql\bin\cluster-data
2、C:\Program Files\mysqlcluster\datanode\mysql\cluster-data
3、C:\Program Files\mysqlcluster\sqlnode?? //(SQL節(jié)點(diǎn)文件夾)
?
在C:\ProgramFiles\mysqlcluster\datanode\mysql\bin進(jìn)行如下操作:
1、創(chuàng)建my.ini文件
2、粘帖mysql-cluster-gpl-7.4.7-win32\mysql\bin\ndbd.exe
?
my.ini配置:
[mysql_cluster]
# Options for data node process:
ndb-connectstring=192.168.131.128 ??# location of management server
?
另一臺(tái)192.168.131.131數(shù)據(jù)節(jié)點(diǎn)同樣配置。my.ini配置一樣
==========================配置完成=======================
SQL節(jié)點(diǎn)配置:
在C:\Program Files\mysqlcluster\sqlnode下:
1、把mysql-cluster-gpl-7.4.7-win32文件改名為mysql
2、把mysql整個(gè)文件粘帖到此
3、在mysql根目錄創(chuàng)建my.ini文件
?
my.ini配置:
[mysqld]
# Options for mysqld process:
ndbcluster??????????????????????? # run NDB storageengine
ndb-connectstring=192.168.131.129?? # location of management server
?
?????? 另一臺(tái)192.168.131.131 SQL節(jié)點(diǎn)同樣配置。my.ini配置為192.168.131.131
==========================配置完成=======================
一些空文件夾是用來(lái)存放一些緩存,
以及一些日志文件的,不用理會(huì)。只要?jiǎng)?chuàng)建空文件夾就行了。
至此,整個(gè)MySQL集群就搭建完成了。
啟動(dòng)服務(wù)前,我們需要到注冊(cè)表去注冊(cè)一下mysql
管理節(jié)點(diǎn)注冊(cè)表設(shè)置:
//注冊(cè)表
regedit--打開(kāi)注冊(cè)表
在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\EventLog\Application\
下新建創(chuàng)建KEY 值
MySQL ClusterManagement Server
?
?
數(shù)據(jù)節(jié)點(diǎn)和SQL節(jié)點(diǎn)注冊(cè)表統(tǒng)一配置:
regedit--打開(kāi)注冊(cè)表
在
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\EventLog\Application\
下新建創(chuàng)建KEY 值
MySQL Cluster DataNode Daemon
?
?
啟動(dòng)數(shù)據(jù)庫(kù)集群也是有順序的。
管理節(jié)點(diǎn)à數(shù)據(jù)節(jié)點(diǎn)àSQL節(jié)點(diǎn)
?
以下都是cmd命令實(shí)現(xiàn)
?
//啟動(dòng)管理節(jié)點(diǎn)
切到:
C:\mysql\bin
輸入:
ndb_mgmd -fconfig.ini --configdir=C:\mysql\mysql-cluster
//啟動(dòng)數(shù)據(jù)節(jié)點(diǎn)
啟動(dòng)數(shù)據(jù)節(jié)點(diǎn)
切到:
C:\ProgramFiles\mysqlcluster\sqlnode\mysql\bin
輸入:
ndbd--connect-string="nodeid2;host=192.168.131.128:1186"
//nodeid2是根據(jù)管理節(jié)點(diǎn)的配置文件config.ini中的id決定的,如果id為2,則為nodeid2,配置文件中未指定id,則按順序執(zhí)行。
//啟動(dòng)SQL節(jié)點(diǎn)
sql節(jié)點(diǎn)和數(shù)據(jù)節(jié)點(diǎn)是同一臺(tái)電腦上,所以新打開(kāi)一個(gè)cmd界面
切到:
C:\ProgramFiles\mysqlcluster\sqlnode\mysql\bin
輸入:
mysqld.exe--ndbcluster --ndb-connectstring=192.168.131.128 –console
啟動(dòng)完成之后,可以在管理節(jié)點(diǎn)查詢連接情況:
切到
C:\mysql\bin
輸入:
ndb_mgm?
再輸入:
show或者ALL STATUS ?
上圖只是啟動(dòng)了192.168.131.129這臺(tái)虛擬機(jī)的服務(wù),只連了這個(gè)
?
最后還有一點(diǎn)需要特別注意:
?????? 注意建表語(yǔ)句后面一定要加上 engine=ndbcluster
測(cè)試MySQL集群
1、在sql節(jié)點(diǎn)A建立數(shù)據(jù)庫(kù)并插入數(shù)據(jù):
在sql節(jié)點(diǎn)A的計(jì)算機(jī)上(192.168.131.129)的cmd中運(yùn)行C:\Program?
Files\mysqlcluster\sqlnode\mysql\bin\mysql.exe -u root-p命令登錄mysql,
接下來(lái)需要輸入密碼時(shí),密碼默認(rèn)為空(直接回車(chē))。
創(chuàng)建數(shù)據(jù)庫(kù)并插入數(shù)據(jù):?
—–創(chuàng)建名為”MySQL_Cluster_Test”的數(shù)據(jù)庫(kù):
????createdatabase MySQL_Cluster_Test;
—–創(chuàng)建表”T_User”:
????use MySQL_Cluster_Test;
????createtable T_User(Name varchar(32),Age int) engine=ndbccluster
????注意建表語(yǔ)句后面一定要加上 engine=ndbcluster
—–插入數(shù)據(jù):
????insert into T_User values('DannyHoo',26);
—–查詢數(shù)據(jù):
????select * from T_User;
2、在sql節(jié)點(diǎn)B也可以查詢到數(shù)據(jù)。
同樣在sql節(jié)點(diǎn)B的計(jì)算機(jī)上(192.168.131.131)的cmd中運(yùn)行C:\Program?
Files\mysqlcluster\sqlnode\mysql\bin\mysql.exe -u root -p命令登錄mysql。
執(zhí)行 show databases; 命令可以查看到在sql節(jié)點(diǎn)A新建的數(shù)據(jù)庫(kù);?
執(zhí)行use MySQL_Cluster_Test;?
select * from T_User;?
可以查詢到在sql節(jié)點(diǎn)A插入的數(shù)據(jù)。
=========================================我是分割線=======================================
到這里,整個(gè)集群的搭建和測(cè)試就完成了。假如一個(gè)數(shù)據(jù)節(jié)點(diǎn)宕機(jī),并不會(huì)影響整個(gè)集群的運(yùn)行,任何一個(gè)數(shù)據(jù)節(jié)點(diǎn)死掉甚至物理?yè)p壞都不用擔(dān)心,因?yàn)槊總€(gè)數(shù)據(jù)節(jié)點(diǎn)保存的數(shù)據(jù)都是完整的一份數(shù)據(jù)(在你操作數(shù)據(jù)的時(shí)候,它早就自動(dòng)為你把最新的數(shù)據(jù)備份到每一個(gè)數(shù)據(jù)節(jié)點(diǎn)上啦)。你可以測(cè)試一下,這時(shí)手動(dòng)停止某個(gè)數(shù)據(jù)節(jié)點(diǎn)和sql節(jié)點(diǎn),另外一個(gè)數(shù)據(jù)節(jié)點(diǎn)和sql節(jié)點(diǎn)還會(huì)正常運(yùn)行。當(dāng)你把停止的數(shù)據(jù)節(jié)點(diǎn)和sql節(jié)點(diǎn)重新啟動(dòng)時(shí),會(huì)發(fā)現(xiàn)又重新連接到集群里了,而且每個(gè)數(shù)據(jù)節(jié)點(diǎn)的數(shù)據(jù)都是最新的。
轉(zhuǎn)載于:https://blog.51cto.com/alex233/1709081
總結(jié)
以上是生活随笔為你收集整理的window7 MySql Cluster数据库集群配置的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: sip-selvet 环境搭建
- 下一篇: 51nod-正整数分组问题(基础方程DP