程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
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 FilesMySQLMySQL 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