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