1. 程式人生 > >Windows系統搭建Mysql Cluster叢集

Windows系統搭建Mysql Cluster叢集

簡單介紹一下MySQL叢集涉及的三種節點:
    管理節點(也可以稱管理伺服器)是整個叢集環境的核心,類似於叢集中起排程作用的樞紐,由它來負責管理其它節點(資料節點和SQL節點)的開啟、關閉或重啟某個節點等等;其他節點從管理節點檢索配置資料,當資料節點有新事件時就把事件資訊傳送給管理節點並寫入群集日誌。該管理節點也是從mysql 5.6版本之後才出現,可見資料庫對於搭建叢集這個方向正在提出新的需求和新的挑戰,也許在之後的版本中搭建叢集將變的非常簡單,期待後續版本功能更強大。
    資料節點用於儲存資料,如使用者的資料、資料庫、表、檢視、儲存過程等都儲存在資料節點中。

    SQL節點(即MySql Service伺服器)跟一般的MySQL伺服器是一樣的,通過它來對資料進行管理和維護工作,為資料庫提供各種服務,如操作資料庫、安全、備份。

     MySQL 叢集支援多臺電腦,本文搭建的MySQL叢集以兩臺機子為例,其中一臺(IP為192.168.191.3)部署管理節點、資料節點和SQL節點,另一臺(IP為192.168.191.1)部署資料節點和SQL節點。

一 準備工作

管理節點(MGM)192.168.191.3(db1)
資料節點1(NDBD1) 192.168.191.3(db2)
資料節點2(NDBD2) 192.168.191.1(db3)
SQL節點1(SQL1) 192.168.191.3(db4)
SQL節點2(SQL2) 192.168.191.1(db5)


本人下載的是mysql-cluster-gpl-7.4.11-winx64.zip免安裝版

二 叢集配置

(1)管理節點

解壓mysql-cluster-gpl-7.4.11-winx64.zip檔案

2.1.1 在IP為192.168.191.3的電腦上的C盤根目錄下新建mysql目錄,在mysql目錄下新建bin目錄和mysql-cluster目錄,在bin目錄下新建cluster-logs目錄、config.ini檔案、my.ini檔案,再將安裝包中的bin目錄下的ndb_mgm.exe和ndb_mgmd.exe拷貝到C:\mysql\bin下。

config.ini內容:

[ndbd default]
# Options affecting ndbd processes on all data nodes:   
# Number of replicas
NoOfReplicas=2
DataDir=c:/mysqlcluster/datanode/mysql/bin/cluster-data
# Directory for each data node's data files
# Memory allocated to data storage
DataMemory=80M
# Memory allocated to index storage
IndexMemory=18M
# For DataMemory and IndexMemory, we have used the
# default values.

[ndb_mgmd]
# Management process options:  
# Hostname or IP address of management node 管理節點   
HostName=192.168.191.3
# Directory for management node log files   
DataDir=C:/mysql/bin/cluster-logs

[ndbd]
# Options for data node "A":                                  
# (one [ndbd] section per data node)   
# Hostname or IP address 資料節點  
HostName=192.168.191.3

[ndbd]
# Options for data node "B":   
# Hostname or IP address  
HostName=192.168.191.1

[mysqld]
# SQL node options:   
# Hostname or IP address sql節點  
HostName=192.168.191.3

[mysqld]
# SQL node options:   
# Hostname or IP address  
HostName=192.168.191.1
my.ini中的內容如下
[mysql_cluster]  
# Options for management node process  
config-file=C:/mysql/bin/config.ini
(2)資料節點

2.2.1 在IP為192.168.191.3的電腦C盤新建mysqlcluster目錄,在mysqlcluster目錄下新建datanode目錄,在datanode目錄下新建mysql目錄,在mysql目錄下新建bin目錄和cluster-data目錄,在bin目錄下再建一個子目錄也叫cluster-data。

2.2.2 將安裝包data目錄下的所有檔案拷貝到C:\mysqlcluster\datanode\mysql\cluster-data下

2.2.3 將安裝包中bin目錄下的ndbd.exe拷貝到C:\mysqlcluster\datanode\mysql\bin下

2.2.4 在C:\mysqlcluster\datanode\mysql中新建my.ini檔案,檔案內容為:

[mysql_cluster]
# Options for data node process:   
# location of management server 管理節點IP
ndb-connectstring=192.168.191.3
注:因為各資料節點的配置是一樣的,所以我們可以直接將192.168.191.3主機中的資料夾C:\mysqlcluster拷貝到192.168.191.1主機的C盤下,並無需任何更改。

(3)sql節點

2.3.1 在IP為192.168.191.3的電腦C:\mysqlcluster目錄下新建sqlnode目錄,在sqlnode目錄下新建mysql目錄,將zip檔案解壓後的所有檔案(bin目錄一級的所有目錄和檔案)都放在mysql目錄下

2.3.2將my-default.ini 檔案刪除或更名為my-default.ini.bak

2.3.3在mysql目錄下新建my.ini檔案,檔案內容為:

[mysqld]
ndbcluster
# Options for data node process:ndbcluster
# location of management server 管理節點IP
ndb-connectstring=192.168.191.3
port=3307
注:此處設定埠號為3307,是因為本人電腦上已經裝了一個mysql版本,為避免衝突設定的。不設定的話預設為3306 因為各sql節點的配置是一樣的,所以我們可以直接將192.168.191.3主機中的資料夾C:\mysqlcluster拷貝到192.168.191.1主機的C盤下,並無需任何更改。

三 啟動叢集

 三種節點服務啟動時,一定要按照先啟動管理節點,後啟動資料節點,再啟動SQL節點的順序進行。

(1)啟動管理節點

3.1.1 在IP為192.168.191.3的電腦上開啟命令視窗,進入到C:\mysql\bin目錄,輸入

ndb_mgmd -f config.ini --configdir=C:\mysql\mysql-cluster

回車,管理節點就啟動了


注:此行命令列視窗不能關閉,除非想停止服務。

(2)啟動資料節點

3.2.1192.168.191.3的電腦上開啟命令視窗,進入到C:\mysqlcluster\datanode\mysql\bin目錄,輸入

ndbd

回車,資料節點就啟動了


3.2.2 以相同的方法在IP為192.168.191.1的電腦上啟動資料節點

3.2.3此時可以在有管理節點的電腦上檢視資料節點和sql節點的連線情況

  在IP為192.168.191.3的電腦上開啟命令視窗,進入到C:\mysql\bin目錄,輸入
ndb_mgm
   按回車,再輸入:

all status,回車,就可以檢視資料節點的連線資訊了(若使用show 會檢視到管理節點、各資料節點、各SQL節點的連線資訊)

(3)啟動sql節點

3.3.1首先需要啟動mysql服務(切記:以管理員身份執行cmd視窗,否則會出現下圖情況)


  啟動mysql服務之前先要安裝mysql服務,192.168.191.3的電腦上開啟命令視窗,進入到C:\mysqlcluster\sqlnode\mysql\bin目錄,輸入

mysqld –install

回車,安裝mysql服務,如果已安裝,就不需要進行這一步

然後輸入 net start mysql 命令啟動MySQL服務

3.3.2在192.168.191.3的電腦上開啟命令視窗,進入到C:\mysqlcluster\sqlnode\mysql\bin,輸入

mysqld --console

回車,SQL節點啟動。

3.3.3以相同的方法在IP為192.168.191.1的電腦上啟動sql節點

四 測試叢集

本人用navicat for mysql連線資料庫,在IP為192.168.191.3的電腦上建立了一個數據庫,在IP為192.168.191.1電腦上也會顯示,注意建立表的時候需在見建表語句後加上

engine=ndbcluster 或 engine=ndb