程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> Windows環境下配置MySQL Cluster

Windows環境下配置MySQL Cluster

編輯:MySQL綜合教程

   一、准備工作

  首先得准備好硬件設施、我這裡是3台機器在做群集、結構如下:

  管理節點(MGM) 172.16.0.162(db1)

  SQL節點1(SQL1) 172.16.0.161(db2)

  SQL節點2(SQL2) 172.16.0.202(db3)

  數據節點1(NDBD1) 172.16.0.161(db4)

  數據節點2(NDBD2) 172.16.0.202(db4)

  這個硬件搞定了、現在搞軟件

  最好下載7以上的版本、因為性能好嘛,7.2這個版本的新特性上介紹說是:自適應查詢本地化(AQL) 復雜連接速度提高70多倍。當然到底是不是這樣我沒有測試過不清楚。

  二、安裝軟件

  解壓mysql-cluster-gpl-7.2.9-win32.zip包

  Management node的安裝配置。

  Management node一定要安裝在C盤下,並且是以下的目錄(這是在運行此節點時報錯,說找不到相對應的目錄)。在IP為172.16.0.162的機子上

  生成c:/mysql/bin、C:/mysql/mysql-cluster(第一次啟動後在這個文件夾會生成類似ndb_1_config.bin.1的文件,好像是為了以後啟動加載的配置)

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

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

  my.ini的內容為:

  [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的內容:(注: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 #管理節點服務器

  # 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 #如果不存在就創建一個

  [NDBD]

  ID=3

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

  #DataDir= D:/Program Files/mysqlcluster/datanode/mysql/bin/cluster-data #如果不存在就創建一個

  [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 #管理節點服務器# 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 #如果不存在就創建一個[NDBD]ID=3HostName=172.16.0.202 #MySQL集群db2的IP地址#DataDir= D:/Program Files/mysqlcluster/datanode/mysql/bin/cluster-data #如果不存在就創建一個[MYSQLD]ID=4HostName=172.16.0.161[MYSQLD]ID=5HostName=172.16.0.202

  Data nodes的安裝配置

  在IP為172.16.0.161 的機子上生成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復制到

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

  並在D:/Program Files/mysqlcluster/datanode/mysql/bin目錄下生成my.ini文件,文件的內容為:

  [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機子上配置相同的配置,也可以直接復制到172.16.0.202機子上。

  SQL node的安裝配置

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

  [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整個文件夾復制到172.16.0.202機子的相同目錄下。

  三、啟動集群

  啟動各個節點是有順序的,先是Management node,然後是Data nodes,最後是SQL nodes。

  a、啟動Management node在172.16.0.162機子下進入命令行,轉到c:/mysql/bin目錄下,輸入:

  ndb_mgmd -f config.ini

  (

  如果報如下錯誤: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=

  則在創建如下文件夾:C:\Program Files\MySQL\MySQL Server 5.5

  )

  b、啟動Data node

  在172.16.0.161機子下進入命令行,轉到D:/Program Files/mysqlcluster/datanode/mysql/bin目錄下,輸入:

  ndbd --connect-string="nodeid2;host=172.16.0.162:1186"

  同理啟動172.16.0.202機子,nodeid2是根據管理節點的配置文件

  config.ini中的id決定的,如果id為2,則為nodeid2,配置文件中未指定

  id,則按順序執行。

  (注)此時可通過在Management node中新開一命令行,轉到

  c:/mysql/bin目錄下輸入命令:

  ndb_mgm

  啟動ndb_mgm.exe,之後輸入命令:

  ALL STATUS

  查看到Data node連接是否成功.之後啟動正常之後才能繼續啟動

  SQLnode

  c、啟動SQL node

  在172.16.0.161機子下進入命令行,轉到D:/Program

  Files/mysqlcluster/sqlnode/mysql/bin目錄下,輸入:

  mysqld --console

  按相同方式啟動172.16.0.202下的SQL node。

  (注):可通過在Management node節點的機器下,轉到c:/mysql/bin目錄

  下輸入命令:

  ndb_mgm

  啟動ndb_mgm.exe,之後輸入命令:

  SHOW

  即可查看到各個節點的連接情況。

  正確顯示應該為:

Windows環境下配置MySQL Cluster 幫客之家

  四、測試

  (注:創建表時一定要加上engine = ndbcluster default charset utf8; ndbcluster :表示該表為數據節點可操作; default charset:表示設置字符集)

  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′);

  在另一台 SQL 節點上登錄 mysql,從表 city 裡得到記錄:

  C:\>mysql -u root test

  mysql>select * from city;

  在群集系統正常工作的情況下,應當能取到先前插入的所有記錄。記得在語句完成以後加上";"(分號)哦親!

  另外的測試(單點故障測試):

  1,還可以人為停止某一個數據節點(Ctrl+C中斷DOS命令ndbd.exe,停止該服務),看看所有的 SQL 節點是不是能正常工作。

  2,在某一個數據節點停止後,進行數據庫操作。然後重新開啟該數據節點,看看群集中的所有的 SQL 節點能不能得到完整的數據。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved