相關(guān)資訊
本類常用軟件
-
福建農(nóng)村信用社手機(jī)銀行客戶端下載下載量:584204
-
Windows優(yōu)化大師下載量:416918
-
90美女秀(視頻聊天軟件)下載量:366961
-
廣西農(nóng)村信用社手機(jī)銀行客戶端下載下載量:365699
-
快播手機(jī)版下載量:325855
Windows 環(huán)境下配置 MySQL Cluster
2013/5/3 20:34:18 出處:本站原創(chuàng) 人氣:418次 字號(hào):小 中 大
一、準(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ù)。