程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> MySQL集群在IBM服務器上配置安裝詳解

MySQL集群在IBM服務器上配置安裝詳解

編輯:MySQL綜合教程

本文只是介紹安裝和配置,關於一些名詞和原理,請參考MySQL手冊。

一.環境:

IBM x3560

Vmware esx 4.0

centos 5.3 –32bit

MySQL-max-5.0.24-linux-i686.tar.gz

為了快速搭建所需環境,我選擇了一台IBM服務器安裝了Vmware esx 4.0,用vm的ovf模板部署了3台centos,一台作為管理MGM),節點兩台作為SQL節點和數據節點。計算機名和IP地址如下:

DB1    192.168.20.201

DB2    192.168.20.202

MGM   192.168.20.203

二,在DB1和DB2上部署MySQL配置過程相同)

聽說MySQL5.1以及集成了MySQL集群功能,但是看了好多資料包括MySQL5.1手冊),都沒有介紹安裝配置的方法,很郁悶,最後還是選擇了MySQL-max-5.0.24這個版本,MySQL-max是二進制的包,所以也省去了安裝的麻煩,只需要幾步簡單的設置。

1, 建立MySQL用戶組,MySQL-max-5.0.24-linux-i686.tar.gz解壓後移動到/usr/local/MySQL

  1. [root@db1 software]#groupadd MySQL  
  2. [root@db1 software]#useradd –g MySQL MySQL  
  3. [root@db1 software]# tar  -zxf  MySQL-max-5.0.24-linux-i686.tar.gz  
  4. [root@db1 software]#mv  MySQL-max-5.0.24-linux-i686  MySQL  
  5. [root@db1 software]#mv MySQL /usr/local/MySQL 

2, 拷貝MySQL配置文件到/etc/下,初始化數據庫,設置目錄權限,啟動MySQL

  1. [root@db1 software]# cd /usr/local/MySQL/  
  2. [root@db1 MySQL]# cp support-files/my-medium.cnf /etc/my.cnf  
  3. [root@db1 MySQL]# scripts/MySQL_install_db --user=MySQL  
  4. [root@db1 MySQL]#chown -R root .  
  5. [root@db1 MySQL]#chown -R MySQL data  
  6. [root@db1 MySQL]#chgrp -R MySQL .  
  7. [root@db1 MySQL]# bin/MySQLd_safe --user=MySQL & 

3, 將MySQL寫入服務,初始化MySQL的root密碼

  1. [root@db1 MySQL]# cp support-files/MySQL.server /etc/rc.d/init.d/MySQLd  
  2. [root@db1 MySQL]# chkconfig --add MySQLd  
  3. [root@db1 MySQL]# bin/MySQLadmin -u root password 123456 

4, 停止MySQL服務,修改配置文件

  1. [root@db1 MySQL]# service MySQLd stop  
  2. [root@db1 MySQL]# vi /etc/my.cnf 

在最下面添加內容:

  1. [MySQLD]  
  2. ndbcluster  
  3. ndb-connectstring=192.168.20.203  
  4.    
  5. [MySQL_CLUSTER]  
  6. ndb-connectstring=192.168.20.203 

保存退出,先不要啟動MySQL服務

三,部署管理節點

管理節點的配置也很簡單,但它是MySQL cluster配置中最關鍵的一步。

1, 解壓MySQL-max-5.0.24-linux-i686.tar.gz包,拷貝包裡bin目錄下的ndb_mgm和ndb_mgmd兩文件到/usr/bin/目錄中看一下是否具有可執行權限)。

  1. [root@mgm MySQL-max-5.0.24-linux-i686]# cd bin/ndb_mgm* /usr/bin 

2, 創建管理節點數據庫目錄,並且在此目錄中建立配置文件config.ini

  1. Mkdir /usr/local/MySQL-cluster  
  2. Cd /usr/local/MySQL-cluster  
  3. Vi config.ini 

添加如下內容:

  1. [NDBD DEFAULT]  
  2. NoOfReplicas=2 
  3. DataMemory=200M 
  4. IndexMemory=100M 
  5.    
  6. [TCP DEFAULT]  
  7. portnumber=2202 
  8.    
  9. [NDB_MGMD]  
  10.    
  11. hostname=192.168.20.203  
  12. datadir=/usr/local/MySQL-cluster  
  13.    
  14. [NDBD]  
  15.    
  16. hostname=192.168.20.201  
  17. datadir=/usr/local/MySQL/data  
  18.    
  19. [NDBD]  
  20.    
  21. hostname=192.168.20.202  
  22. datadir=/usr/local/MySQL/data  
  23.    
  24. [MySQLD]  
  25. hostname=192.168.20.201  
  26.    
  27. [MySQLD]  
  28. hostname=192.168.20.202 

保存退出

四,MySQL cluster的啟動

MySQL cluster的啟動順序:管理節點--數據節點-SQL節點。

1,[root@mgm MySQL-cluster]# ndb_mgmd -f ./config.ini

如果沒有提示,表示啟動成功,Ps -aux查看進程,看是否已經啟動

  1. root  4700  0.0 0.6   5984 1668 ?    Ssl 14:20   0:00 ndb_mgmd -f ./config.ini 

2,分別在DB1和DB2上啟動數據節點

  1. [root@db1 MySQL]# bin/ndbd –initial 

問題出來了:

提示:

  1. [root@db1 MySQL]# bin/ndbd --initial  
  2. Unable to connect with connect string: nodeid=0,192.168.20.203:1186  
  3. Retrying every 5 seconds. Attempts left: 12 11 10 9 8 7 6 5 4 3 2 1, failed.  
  4. error=2350 
  5. 2010-05-05 14:21:21 [ndbd] INFO     -- Error handler restarting system  
  6. 2010-05-05 14:21:21 [ndbd] INFO     -- Error handler shutdown completed - exiting  
  7. sphase=0 
  8. exit=-1 

在網上找答案,出這個問題的人還真不少,而且答案五花八門,統統試了一遍,還是不行,問題到底出在哪裡呢?

查看錯誤日志,內容如下:

  1.  [root@db1 MySQL]# more ndb_pid4968_error.log  
  2. Current byte-offset of file-pointer is: 568                        
  3.    
  4. Time: Wednesday 5 May 2010 - 14:17:25  
  5. Status: Permanent error, external action needed  
  6. Message: Invalid configuration received from Management Server (Configuration error)  
  7. Error: 2350  
  8. Error data: Could not connect to ndb_mgmd  
  9. Error object:  
  10. Program: bin/ndbd  
  11. Pid: 4968  
  12. Trace: <no tracefile> 
  13. Version: Version 5.0.24  
  14. ***EOM*** 

看帶下劃線處,不能連接到管理節點,我的管理節點啟動是ok的啊,突然一下明白了,防火牆是開著的系統默認是開啟的),關掉防火牆和SELinux,重新ndbd –initial,啟動成功

3, 啟動SQL節點上的MySQL服務

  1. Service MySQLd start 

4,全部節點都啟動成功後,在MGM節點上用ndb_mgm工具的show命令查看群集的狀態    

  1.         [root@mgm ~]# ndb_mgm  
  2. -- NDB Cluster -- Management Client --  
  3. ndb_mgm> show  
  4. Connected to Management Server at: localhost:1186  
  5. Cluster Configuration  
  6. ---------------------  
  7. [ndbd(NDB)]     2 node(s)  
  8. id=2    @192.168.20.201 (Version: 5.0.24, Nodegroup: 0, Master)  
  9. id=3    @192.168.20.202 (Version: 5.0.24, Nodegroup: 0)  
  10.          
  11. [ndb_mgmd(MGM)] 1 node(s)  
  12. id=1    @192.168.20.203 (Version: 5.0.24)  
  13.          
  14. [MySQLd(API)]   2 node(s)  
  15. id=4    @192.168.20.201 (Version: 5.0.24)  
  16. id=5    @192.168.20.202 (Version: 5.0.24) 

看藍色標示的字段,可以看到管理節點,sql節點和數據節點,還有一個連接端口。

五.MySQL cluster的測試

聲明一點,要使用MySQL cluster,表的存儲引擎必須是ndb的。

在DB1192.168.20.201)中創建表,插入數據:

  1.  MySQL> use test  
  2. Database changed  
  3.    
  4. MySQL> create table mingxing(name char(3))engine=ndb;  
  5. Query OK, 0 rows affected (0.57 sec)  
  6.    
  7. MySQL> insert into mingxing value('jay'),('cyl'),('ldh');  
  8. Query OK, 3 rows affected (0.04 sec)  
  9. Records: 3 Duplicates: 0 Warnings: 0 

然後再DB2192.168.20.202)上看到了剛才創建的表和表裡的數據

  1. MySQL> use test  
  2. Database changed  
  3. MySQL> show tables;  
  4. +----------------+  
  5. | Tables_in_test |  
  6. +----------------+  
  7. | mingxing      |  
  8. +----------------+  
  9. 1 row in set (0.01 sec)  
  10.    
  11. MySQL> select * from mingxing;  
  12. +------+  
  13. | name |  
  14. +------+  
  15. | jay |  
  16. | cyl |  
  17. | ldh |  
  18. +------+  
  19. 3 rows in set (0.00 sec) 

到此,MySQL的安裝和配置基本完成。

注意: 如果在db1上創建一個數據庫是不能同步到db2上去的,兩邊需要有相同名字的庫名,庫中的數據才能同步過去

編輯推薦】 

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