當(dāng)前位置: 首頁(yè)IT技術(shù) → Windows 環(huán)境下配置 MySQL Cluster

Windows 環(huán)境下配置 MySQL Cluster

更多

一、準(zhǔn)備工作

首先得準(zhǔn)備好硬件設(shè)施、我這里是3臺(tái)機(jī)器在做群集、結(jié)構(gòu)如下:

管理節(jié)點(diǎn)(MGM) 172.16.0.162(db1)
SQL節(jié)點(diǎn)1(SQL1) 172.16.0.161(db2)
SQL節(jié)點(diǎn)2(SQL2) 172.16.0.202(db3)
數(shù)據(jù)節(jié)點(diǎn)1(NDBD1) 172.16.0.161(db4)
數(shù)據(jù)節(jié)點(diǎn)2(NDBD2)     172.16.0.202(db4)

這個(gè)硬件搞定了、現(xiàn)在搞軟件,MySql Cluster的下載地址:http://www.mysql.com/downloads/cluster/

最好下載7以上的版本、因?yàn)樾阅芎寐铮?.2這個(gè)版本的新特性上介紹說是:自適應(yīng)查詢本地化(AQL) 復(fù)雜連接速度提高70多倍。當(dāng)然到底是不是這樣我沒有測(cè)試過不清楚。

二、安裝軟件

解壓mysql-cluster-gpl-7.2.9-win32.zip包
Management node的安裝配置。
Management node一定要安裝在C盤下,并且是以下的目錄(這是在運(yùn)行此節(jié)點(diǎn)時(shí)報(bào)錯(cuò),說找不到相對(duì)應(yīng)的目錄)。在IP為172.16.0.162的機(jī)子上
生成c:/mysql/bin、C:/mysql/mysql-cluster(第一次啟動(dòng)后在這個(gè)文件夾會(huì)生成類似ndb_1_config.bin.1的文件,好像是為了以后啟動(dòng)加載的配置)

和c:/mysql/bin/cluster-logs目錄,在下載解壓的文件目錄mysql/bin中將ndb_mgmd.exe和ndb_mgm.exe復(fù)制到172.16.0.162的c:/mysql/bin目錄下。

在172.16.0.162的c:/mysql/bin下生成兩個(gè)文件,my.ini和config.ini。

my.ini的內(nèi)容為:

[plain]view plaincopyprint?

[mysql_cluster]           

# Options for management node process           

config-file=C:/mysql/bin/config.ini   

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

 

config.ini的內(nèi)容:(注:ID不能從0開始,必須大于0)

[html]view plaincopyprint?

[NDBD DEFAULT]  

NoOfReplicas=2  

DataDir=D:/Program Files/mysqlcluster/datanode/mysql/bin/cluster-data  

DataMemory=80M  

IndexMemory=18M  

[MYSQLD DEFAULT]  

[NDB_MGMD DEFAULT]  

[TCP DEFAULT]  

[NDB_MGMD]  

ID=1  

HostName=172.16.0.162 #管理節(jié)點(diǎn)服務(wù)器  

# Storage Engines  

DataDir=C:/mysql/bin/cluster-logs  

[NDBD]  

ID=2  

HostName=172.16.0.161 #MySQL集群db1的IP地址  

#DataDir= D:/Program Files/mysqlcluster/datanode/mysql/bin/cluster-data #如果不存在就創(chuàng)建一個(gè)  

[NDBD]  

ID=3  

HostName=172.16.0.202 #MySQL集群db2的IP地址  

#DataDir= D:/Program Files/mysqlcluster/datanode/mysql/bin/cluster-data  #如果不存在就創(chuàng)建一個(gè)  

[MYSQLD]  

ID=4  

HostName=172.16.0.161  

[MYSQLD]  

ID=5  

HostName=172.16.0.202  

[NDBD DEFAULT]NoOfReplicas=2DataDir=D:/Program Files/mysqlcluster/datanode/mysql/bin/cluster-dataDataMemory=80MIndexMemory=18M[MYSQLD DEFAULT][NDB_MGMD DEFAULT][TCP DEFAULT][NDB_MGMD]ID=1HostName=172.16.0.162 #管理節(jié)點(diǎn)服務(wù)器# Storage EnginesDataDir=C:/mysql/bin/cluster-logs[NDBD]ID=2HostName=172.16.0.161 #MySQL集群db1的IP地址#DataDir= D:/Program Files/mysqlcluster/datanode/mysql/bin/cluster-data #如果不存在就創(chuàng)建一個(gè)[NDBD]ID=3HostName=172.16.0.202 #MySQL集群db2的IP地址#DataDir= D:/Program Files/mysqlcluster/datanode/mysql/bin/cluster-data #如果不存在就創(chuàng)建一個(gè)[MYSQLD]ID=4HostName=172.16.0.161[MYSQLD]ID=5HostName=172.16.0.202

 

 

Data nodes的安裝配置

在IP為172.16.0.161 的機(jī)子上生成D:/Program Files/mysqlcluster/datanode/mysql/bin、D:/Program Files/mysqlcluster/datanode/mysql/cluster-data、

D:/Program Files/mysqlcluster/datanode/mysql/bin/cluster-data.在下載的的解壓文件夾/bin中將ndbd.exe復(fù)制到

172.16.0.161 機(jī)子的D:/Program Files/mysqlcluster/datanode/mysql /bin目錄下,

并在D:/Program Files/mysqlcluster/datanode/mysql/bin目錄下生成my.ini文件,文件的內(nèi)容為:        

[html]view plaincopyprint?

 [mysql_cluster]  

 # Options for data node process:  

ndb-connectstring=172.16.0.162  # location of management server     

[mysql_cluster] # Options for data node process:ndb-connectstring=172.16.0.162 # location of management server  同理在172.16.0.202機(jī)子上配置相同的配置,也可以直接復(fù)制到172.16.0.202機(jī)子上。

 

SQL node的安裝配置

在IP為172.16.0.161的機(jī)子上生成D:/Program Files/mysqlcluster/sqlnode目錄,將下載的解壓文件夾直接整個(gè)復(fù)制到D:/ProgramFiles/mysqlcluster/sqlnode/mysql目錄下,在D:/ProgramFiles/mysqlcluster/sqlnode/mysql下生成my.ini文件,文件內(nèi)容為:

[html]view plaincopyprint?

 

 

[html]view plaincopyprint?

[mysqld]  

         # Options for mysqld process:ndbcluster     

[mysqld] # Options for mysqld process:ndbcluster  

 

[html]view plaincopyprint?

# run NDB storage engine  

ndb-connectstring=172.16.0.154  

# location of management server  

# run NDB storage engine ndb-connectstring=172.16.0.154 # location of management server同理,將D:/Program Files/mysqlcluster/sqlnode整個(gè)文件夾復(fù)制到172.16.0.202機(jī)子的相同目錄下。

 

 

三、啟動(dòng)集群

啟動(dòng)各個(gè)節(jié)點(diǎn)是有順序的,先是Management node,然后是Data nodes,最后是SQL nodes。

a、啟動(dòng)Management node在172.16.0.162機(jī)子下進(jìn)入命令行,轉(zhuǎn)到c:/mysql/bin目錄下,輸入:
         ndb_mgmd -f config.ini

        (
  如果報(bào)如下錯(cuò)誤:MySQL Cluster Management Server mysql-5.5.28 ndb-7.2.9
  2013-05-03 10:13:10 [MgmtSrvr] INFO     -- The default config directory 'C:/Prog
  ram Files/MySQL/MySQL Server 5.5/mysql-cluster' does not exist. Trying to create
   it...
  Failed to create directory 'C:/Program Files/MySQL/MySQL Server 5.5/mysql-cluste
  r', error: 3
  2013-05-03 10:13:10 [MgmtSrvr] ERROR    -- Could not create directory 'C:/Progra
  m Files/MySQL/MySQL Server 5.5/mysql-cluster'. Either create it manually or spec
  ify a different directory with --configdir=<path>
  則在創(chuàng)建如下文件夾:C:\Program Files\MySQL\MySQL Server 5.5
  )
      b、啟動(dòng)Data node
         在172.16.0.161機(jī)子下進(jìn)入命令行,轉(zhuǎn)到D:/Program Files/mysqlcluster/datanode/mysql/bin目錄下,輸入:
         ndbd --connect-string="nodeid2;host=172.16.0.162:1186"
         同理啟動(dòng)172.16.0.202機(jī)子,nodeid2是根據(jù)管理節(jié)點(diǎn)的配置文件
         config.ini中的id決定的,如果id為2,則為nodeid2,配置文件中未指定
         id,則按順序執(zhí)行。
        (注)此時(shí)可通過在Management node中新開一命令行,轉(zhuǎn)到
         c:/mysql/bin目錄下輸入命令:
         ndb_mgm
         啟動(dòng)ndb_mgm.exe,之后輸入命令:
         ALL STATUS
         查看到Data node連接是否成功.之后啟動(dòng)正常之后才能繼續(xù)啟動(dòng)
         SQLnode
      c、啟動(dòng)SQL node   
         在172.16.0.161機(jī)子下進(jìn)入命令行,轉(zhuǎn)到D:/Program 
         Files/mysqlcluster/sqlnode/mysql/bin目錄下,輸入:
         mysqld --console
         按相同方式啟動(dòng)172.16.0.202下的SQL node。
         (注):可通過在Management node節(jié)點(diǎn)的機(jī)器下,轉(zhuǎn)到c:/mysql/bin目錄 
         下輸入命令:
         ndb_mgm
         啟動(dòng)ndb_mgm.exe,之后輸入命令:
         SHOW
         即可查看到各個(gè)節(jié)點(diǎn)的連接情況。
         正確顯示應(yīng)該為:

         

         

 

四、測(cè)試

(注:創(chuàng)建表時(shí)一定要加上engine = ndbcluster default charset utf8; ndbcluster :表示該表為數(shù)據(jù)節(jié)點(diǎn)可操作; default charset:表示設(shè)置字符集)
        C:\>mysql -u root test
        mysql>create table city (nId mediumint unsigned not null
        auto_increment primary key, sName varchar(20) not null)
        engine = ndbcluster default charset utf8;
        mysql>insert city values(1, ‘city-1′);       
        mysql>insert city values(1, ‘city-2′);
        在另一臺(tái) SQL 節(jié)點(diǎn)上登錄 mysql,從表 city 里得到記錄:
        C:\>mysql -u root test
        mysql>select * from city;

        
        在群集系統(tǒng)正常工作的情況下,應(yīng)當(dāng)能取到先前插入的所有記錄。記得在語(yǔ)句完成以后加上";"(分號(hào))哦親!


        另外的測(cè)試(單點(diǎn)故障測(cè)試):
        1,還可以人為停止某一個(gè)數(shù)據(jù)節(jié)點(diǎn)(Ctrl+C中斷DOS命令ndbd.exe,停止該服務(wù)),看看所有的 SQL 節(jié)點(diǎn)是不是能正常工作。
        2,在某一個(gè)數(shù)據(jù)節(jié)點(diǎn)停止后,進(jìn)行數(shù)據(jù)庫(kù)操作。然后重新開啟該數(shù)據(jù)節(jié)點(diǎn),看看群集中的所有的 SQL 節(jié)點(diǎn)能不能得到完整的數(shù)據(jù)。

熱門評(píng)論
最新評(píng)論
發(fā)表評(píng)論 查看所有評(píng)論(0)
昵稱:
表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
字?jǐn)?shù): 0/500 (您的評(píng)論需要經(jīng)過審核才能顯示)