在Windows環境下配置MySQL叢集

來源:互聯網
上載者:User

標籤:mysqlclust   mysql叢集   mysql   叢集   

前言

最近在項目中用到了MySQL叢集,所以就和小夥伴們研究了兩天。下面給大家分享一下成果。

小編始終覺得對新事物的學習,沒有比看圖這種方式更好地理解了。所以先來看一張mysql叢集的架構圖(摘自百度百科-MySQL Cluster):

一共分了四層:Applications、SQL、Storage、Management。
如果您的英語不是體育老師教的的話,那麼您肯定已經猜出來每一層的職責了:

—–Applications主要是指需要串連資料庫的應用程式;
—–SQL中每一個mysqld都是一個sql節點,Applications需要通過串連sql節點來儲存資料,您可以把它看成應用程式與資料庫叢集進行資料交換的大門
—–Storage有‘倉庫’的意思,所以資料都是存在資料節點(ndbd)中的,而且每個資料節點的資料都是一致的,都是一整套最新的資料
—–Management中就是管理節點,一個MySQL中只有一個管理節點,用來管理其他節點

綜上所述,一個MySQL叢集中包括三種節點(不包括Applications):管理節點、資料節點,sql節點。

一、下載叢集版mysql

下載mysql-cluster-gpl-7.4.7-win32或mysql-cluster-gpl-7.4.7-winx64

:http://yunpan.cn/cd892RtysQ3Vk (提取碼:45c8)
MySQL官網:http://dev.mysql.com/downloads/cluster/

二、配置MySQL叢集

需要用三台機器(沒有條件的朋友可以考慮用虛擬機器),一台組態管理節點:另外兩台每台配置一個資料節點和一個SQL節點(也可以用五台電腦,每台電腦配置一個節點):
管理節點:192.168.25.50
資料節點A:192.168.25.49
資料節點B:192.168.25.48
SQL節點A:192.168.25.49
SQL節點B:192.168.25.48

1、首先將下載壓縮包解壓到每台電腦的C:/mysql目錄下:

當然放在其他盤的目錄裡也可以。

2、組態管理節點

在組態管理節點(192.168.25.50)的電腦上的C:\Mysql\Bin目錄下建立cluster-logs和config兩個檔案夾。cluster-logs用來儲存記錄檔,在config檔案夾中建立my.ini和config.ini兩個設定檔:

my.ini

[mysql_cluster] # Options for management node process config-file=C:/mysql/bin/config/config.ini

config.ini

[ndbd default] # Options affecting ndbd processes on all data nodes: NoOfReplicas=2                      # Number of replicas DataDir=C:/mysql/bin/cluster-data   # Directory for each data node‘s data files                                     # Forward slashes used in directory path,                                     # rather than backslashes. This is correct;                                     # see Important note in text DataMemory=80M                      # Memory allocated to data storage IndexMemory=18M                     # Memory allocated to index storage                                     # For DataMemory and IndexMemory, we have used the                                     # default values. Since the "world" database takes up                                     # only about 500KB, this should be more than enough for                                     # this example Cluster setup.[ndb_mgmd] # Management process options: HostName=192.168.25.50              # Hostname or IP address of management node DataDir=C:/mysql/bin/cluster-logs   # Directory for management node log files[ndbd] # Options for data node "A":     HostName=192.168.25.49              # Hostname or IP address[ndbd] # Options for data node "B":HostName=192.168.25.48              # Hostname or IP address[mysqld] # SQL node A options:HostName=192.168.25.49              # Hostname or IP address[mysqld] # SQL node B options:HostName=192.168.25.48              # Hostname or IP address
3、配置資料節點

在配置資料節點(192.168.25.48、192.168.25.49)的電腦上的C:\Mysql\Bin目錄下建立cluster-data檔案夾,用來存放資料:

SQL節點不用任何配置,至此,整個MySQL叢集就搭建完成了。

三、啟動MySQL叢集

啟動MySQL叢集時,有一個啟動順序:先啟動管理節點,再啟動資料節點,再啟動sql節點。

1、啟動管理節點:

在cmd中運行如下命令

c:\mysql\bin\ndb_mgmd.exe --configdir=c:\mysql\bin\config --config-file=c:\mysql\bin\config\config.ini --ndb-nodeid=1 --reload –initial

2、啟動每個資料節點:

在cmd中運行如下命令:

c:\mysql\bin\ndbd.exe --ndb-connectstring=192.168.25.50

3、啟動每個sql節點:

在cmd中運行如下命令:

c:\mysql\bin\mysqld.exe --ndbcluster --ndb-connectstring=192.168.25.50 --console

現在整個MySQL叢集就已經啟動了。

4、查看每個節點的狀態:

在管理節點所在電腦上(192.168.25.50)開啟ndb_mgm.exe,或者直接在cmd中運行

c:\mysql\bin\ndb_mgm

執行“show”命令,可以查看到每個節點的串連狀態:

這就表明每個節點均串連正常。下面測試資料。

三、測試MySQL叢集1、在sql節點A建立資料庫並插入資料:

在sql節點A的電腦上(192.168.25.49)的cmd中運行C:\mysql\bin\mysql.exe -u root -p命令登入mysql,接下來需要輸入密碼時,密碼預設為空白(直接斷行符號)。

建立資料庫並插入資料:
—–建立名為”MySQL_Cluster_Test”的資料庫:

 create database MySQL_Cluster_Test;

—–建立表”T_User”:

use MySQL_Cluster_Test;create table T_User(Name varchar(32),Age int) engine=ndbcluster;

注意建表語句後面一定要加上 engine=ndbcluster

—–插入資料:

insert into T_User values(‘DannyHoo‘,26);

—–查詢資料:

select * from T_User;

2、在sql節點B也可以查詢到資料。

同樣在sql節點B的電腦上(192.168.25.48)的cmd中運行C:\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節點重新啟動時,會發現又重新串連到叢集裡了,而且每個資料節點的資料都是最新的。

著作權聲明:本文為博主原創文章,未經博主允許不得轉載。

在Windows環境下配置MySQL叢集

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.