萬盛學電腦網

 萬盛學電腦網 >> 數據庫 >> mysql教程 >> 【圖】Windows Server 2008R2配置MySQL Cluster教程詳解

【圖】Windows Server 2008R2配置MySQL Cluster教程詳解

MySQL Cluster 是MySQL適合於分布式計算環境的高實用、高冗余版本。它采用了NDB Cluster 存儲引擎,允許在1個 Cluster 中運行多個MySQL服務器。現在我們來學習一下在Windows Server 2008R2配置MySQL Cluster。

配置環境

VMware:(版本10.0.01)

操作系統:Windows Server 2008 R2 Enterprise

VM1:192.168.220.103 管理節點(MGM),數據節點(NDBD1),SQL節點(SQL1)

VM2:192.168.220.104 數據節點(NDBD2),SQL節點(SQL2)

MySQL Cluster版本:7.3.7 (MSI Installer)  下載地址:http://dev.mysql.com/downloads/cluster/

測試工具:Navicate for MySQL

關知識

簡介:

MySQL Cluster 是一種技術,該技術允許在無共享的系統中部署“內存中”數據庫的 Cluster 。通過無共享體系結構,系統能夠使用廉價的硬件,而且對軟硬件無特殊要求。此外,由於每個組件有自己的內存和磁盤,不存在單點故障。

MySQL Cluster 由一組計算機構成,每台計算機上均運行著多種進程,包括MySQL服務器,NDB Cluster 的數據節點,管理服務器,以及(可能)專門的數據訪問程序

特點: http://www.mysql.com/products/cluster/features.html

三種節點:

管理節點:用於管理集群共它節點; 守護進程ndb_mgmd

數據節點:用於保存集群的數據; 守護進程ndbd

SQL節點:用於連接數據節點;守護進程mysqld

詳情請參考:參考手冊中MySQL Cluster章節

配置過程

在VM1和VM2上安裝MySQL Cluster(mysql-cluster-gpl-7.3.7-winx64)

選擇typical安裝,安裝目錄均為:C:Program FilesMySQLMySQL Cluster 7.3

在VM1和VM2上的Windows 資源管理器中打開C:Program FilesMySQL,在此目錄下新建文件夾MySQL Server 5.6,然後在新建的MySQL Server 5.6文件夾下新建mysql-cluster文件夾

新建文件夾的路徑分別為:C:Program FilesMySQLMySQL Server 5.6

C:Program FilesMySQLMySQL Server 5.6mysql-cluster

在VM1的Windows 資源管理器打開目錄C:Program FilesMySQLMySQL Cluster 7.3,並在此目錄下新建一個config.ini文件

 

 代碼如下 復制代碼

[ndbd default]

NoOfReplicas=2

[ndb_mgmd]

NodeId=1

HostName=192.168.220.103

DataDir=C:Program FilesMySQLMySQL Cluster 7.3data

[ndbd]

NodeId=21

HostName=192.168.220.103

DataDir=C:Program FilesMySQLMySQL Server 5.6mysql-cluster

[ndbd]

NodeId=22

HostName=192.168.220.104

DataDir=C:Program FilesMySQLMySQL Server 5.6mysql-cluster

[mysqld]

NodeId=11

HostName=192.168.220.103

[mysqld]

NodeId=12

HostName=192.168.220.104

 

在VM1和VM2的資源管理器中打開目錄C:Program FilesMySQLMySQL Cluster 7.3,並在此目錄下新建一個my.ini文件

 

 代碼如下 復制代碼

[mysqld]

character_set_server=utf8

basedir="C:Program FilesMySQLMySQL Cluster 7.3"

datadir="C:Program FilesMySQLMySQL Cluster 7.3data"

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

ndbcluster

ndb-connectstring=192.168.220.103

explicit_defaults_for_timestamp=true

[mysql_cluster]

ndb-connectstring=192.168.220.103

 

在VM1和VM2中設置環境變量(非必需,文中並未用到,都會CD轉到到相應目錄去執行命令)

計算機右鍵屬性 (或者 控制面板系統和安全系統)--->高級系統配置--->"高級"選擇卡--->環境變量--->系統變量中找到 Path--->編輯--->加上C:Program FilesMySQLMySQL Cluster 7.3bin

注意:多個路徑用分號分隔

配置文件主要參數介紹:

[NDBD]:定義了集群的數據節點

[MYSQLD]:定義了集群的MySQL服務器節點

[MGM]或[NDB_MGMD]:定義了集群的管理服務器節點

[NDB_MGMD]Id:節點唯一的標識

[NDBD]NoOfReplicas:全局參數僅能在[NDBD DEFAULT]中設置,它定義了集群中每個表保存的副本數。該參數還指定了節點組的大小。節點組指的是保存相同信息的節點集合

[NDBD]DataDir:該參數指定了存放跟蹤文件、日志文件、 pid文件以及錯誤日志的目錄

[MYSQLD]basedir:使用指定目錄作為根目錄

[MYSQLD]datadir:使用指定目錄讀取數據庫文件

在管理節點(MGM)機器上(VM1)中打開CMD窗口執行如下命令,啟動管理節點

 

 代碼如下 復制代碼

cd "C:Program FilesMySQLMySQL Cluster 7.3bin"

db_mgmd.exe --config-file="C:Program FilesMySQLMySQL Cluster 7.3config.ini" --configdir="C:Program FilesMySQLMySQL Cluster 7.3"

 

【圖】Windows Server 2008R2配置MySQL Cluster教程詳解

注意:warning信息不影響,兩台機器配置管理節點和數據節點在一台機器上的原因,並不會引起集群失敗

在數據節點(NDBD1)機器上(VM1)中新打開CMD窗口執行如下命令,啟動數據節點

cd "C:Program FilesMySQLMySQL Cluster 7.3bin"

ndbd.exe --initial

【圖】Windows Server 2008R2配置MySQL Cluster教程詳解

注意:--initial只有初次執行需要,以後執行ndbd.exe就可以(參考手冊裡的意思應該是當需要清理集群文件時才使用,所以這個參數應該要慎用或者提前備份)

在SQL節點(SQL1)機器上(VM1)中新開CMD窗口執行如下命令,啟動SQL節點

 

 代碼如下 復制代碼

cd "C:Program FilesMySQLMySQL Cluster 7.3bin"

mysqld.exe --default-file="C:Program FilesMySQLMySQL Cluster 7.3my.ini"

mysqld --install

net start mysql

 

【圖】Windows Server 2008R2配置MySQL Cluster教程詳解

注意:執行mysqld --install 你可以在計算機的服務器看到名為“MySQL”的服務,在執行net start mysql,在服務中可以看到MySQL服務為“啟動”狀態

在數據節點(NDBD2)機器上(VM2)中新打開CMD窗口執行如下命令,啟動數據節點

 

 代碼如下 復制代碼

cd "C:Program FilesMySQLMySQL Cluster 7.3bin"

ndbd.exe

 

【圖】Windows Server 2008R2配置MySQL Cluster教程詳解

在SQL節點(SQL2)機器上(VM2)中新開CMD窗口執行如下命令,啟動SQL節點

 

 代碼如下 復制代碼

cd "C:Program FilesMySQLMySQL Cluster 7.3bin"

mysqld.exe --default-file="C:Program FilesMySQLMySQL Cluster 7.3my.ini"

mysqld --install

net start mysql

 

【圖】Windows Server 2008R2配置MySQL Cluster教程詳解

檢查配置

在管理節點(MGM)機器上(VM1)中打開CMD窗口執行如下命令

 

 代碼如下 復制代碼

ndb_mgm.exe

show

 

【圖】Windows Server 2008R2配置MySQL Cluster教程詳解

如上圖狀態,表示安裝成功!

同步測試

在VM1和VM2上安裝Navicat for MySQL(安裝步驟省略)

在VM1和VM2上打開Navicat for MySQL並新建連接(示例建立連接分別為:192.168.220.103和192.168.220.104) 安裝後默認用戶名為root,沒有密碼

在192.168.220.103中新建數據庫wilson_mysqlcluster_test,在192.168.220.104中查看

【圖】Windows Server 2008R2配置MySQL Cluster教程詳解

【圖】Windows Server 2008R2配置MySQL Cluster教程詳解

發現192.168.220.104中也出現wilson_mysqlcluster_test

在192.168.220.104中的wilson_mysqlcluster中建一個tb_test表,注意引擎選擇“ndbcluster”,在192.168.220.103中可以看到也會有tb_test表出現

【圖】Windows Server 2008R2配置MySQL Cluster教程詳解

測試在192.168.220.103或192.168.220.104中增、刪、改操作,兩個數據庫都會同步

故障測試

在VM2中停止SQL節點,在192.168.220.103上插入一條數據(原本有2條數據),再啟動VM2上的SQL節點,看是否能正常同步

1.在VM2中CMD窗口執行如下命令停止MySQL服務

net stop msyql

【圖】Windows Server 2008R2配置MySQL Cluster教程詳解

2.在192.168.220.103中插ID為3的數據後,執行如下命令,再次啟動VM2中的MySQL服務,查看192.168.220.104中數據是否完整

net start mysql

【圖】Windows Server 2008R2配置MySQL Cluster教程詳解

測試結果如圖:得到完整數據

其它測試就不一一列舉了

總結

配置前仔細看了MySQL參考文件MySQL Cluster章節
MySQL Cluster配置過程還是比較容易出錯,配置過程中大小錯誤遇到非常多(目錄、SQL節點not connected、MYSQL服務無法啟動、數據無法同步等等),根據CMD上錯誤和日志文件查找對應的解決方法
注意啟動順序會少遇到很多錯誤:管理節點--->數據節點--->SQL節點
生產環境建議用至少3台服務器去配置,需要修改一下config.ini文件,配置過程與兩台沒什麼差別

copyright © 萬盛學電腦網 all rights reserved