Windows環境下配置MySQL Cluster

來源:互聯網
上載者:User

   一、準備工作

  首先得準備好硬體設施、我這裡是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

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

  正確顯示應該為:

  四、測試

  (註:建立表時一定要加上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 節點能不能得到完整的資料。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.