mysql集羣安裝配置

操作系統:
     Centos5.2
  
軟件包:
     mysql-cluster-gpl-7.0.8a-linux-i686-glibc23.tar.gz
 
數據庫管理節點: 192.168.100.151
數據庫數據節點: 192.168.100.65,192.168.100.58
數據庫sql節點: 192.168.100.65,192.168.100.58
 
我這裏數據節點和sql節點用相同的2臺機器承擔.
 
1.管理節點的安裝
  #groupadd mysql
  #useradd mysql -g mysql
  #mv mysql-cluster-gpl-7.0.8a-linux-i686-glibc23.tar.gz /usr/local/
  #cd /usr/local/
  #tar zxvf mysql-cluster-gpl-7.0.8a-linux-i686-glibc23.tar.gz
  #rm -f mysql-cluster-gpl-7.0.8a-linux-i686-glibc23.tar.gz
  #mv mysql-cluster-gpl-7.0.8a-linux-i686-glibc23 mysql
  #chown -R mysql:mysql mysql
  #cd mysql
  #scripts/mysql_install_db --user=mysql
 
2.管理節點的配置
  #mkdir /var/lib/mysql-cluster
  #cd /var/lib/mysql-cluster
  #vi config.ini                //這裏需要手動添加如下內容
 
  [ndbd default]
  NoOfReplicas=2
  DataMemory=80M
  IndexMemory=18M                  
//這裏有很多參數,大家可以自己找下相關資料
  [ndb_mgmd]
  Id=1
  Hostname=10.10.1.151             //管理節點IP
  datadir=/usr/local/mysql/logs
  [ndbd]
  Id=2
  Hostname=10.10.1.65              //數據節點IP   
  datadir=/usr/local/mysql/data/   
//數據節點的數據目錄,這裏要與數據節點的配置文件my.cnf
                                     的數據指定相同
  [ndbd]
  Id=3
  Hostname=10.10.1.58            //數據節點IP   
  datadir=/usr/local/mysql/data/
  [MYSQLD]
  [MYSQLD]
 
3.安裝和配置數據節點
 
  這裏2臺機器數據節點安裝是相同的.
  #groupadd mysql
  #useradd mysql -g mysql
  #mv mysql-cluster-gpl-7.0.8a-linux-i686-glibc23.tar.gz /usr/local/
  #cd /usr/local/
  #tar zxvf mysql-cluster-gpl-7.0.8a-linux-i686-glibc23.tar.gz
  #rm -f mysql-cluster-gpl-7.0.8a-linux-i686-glibc23.tar.gz
  #mv mysql-cluster-gpl-7.0.8a-linux-i686-glibc23 mysql
  #chown -R mysql:mysql mysql
  #cd mysql
  #scripts/mysql_install_db --user=mysql
  #cp support-files/my-medium.cnf /etc/my.cnf
  #cp support-files/mysql.server /etc/init.d/mysqld
  #vi /etc/my.cnf         //這裏需要手動添加如下的內容
 
  datadir=/usr/local/mysql/data/       //這裏要與管理節點的config.ini相同
  ndbcluster
  ndb-connectstring=10.10.1.151
  [ndbd]
  connect-string=10.10.1.151
  [mysql_cluster]
  ndb-connectstring=10.10.1.151
  [ndb_mgm]
  connect-string=192.168.1.151
  [ndb_mgmd]
  config-file=/var/lib/mysql-cluster/config.ini 
 //這裏要指定管理節點配置文件路徑
 
4.啓動相關服務
 
  在管理節點啓動相關服務:
  #/usr/local/mysql/bin/ndb_mgmd -f /var/lib/mysql-cluster/config.ini
  #netstat -lntpu
  tcp        0      0 0.0.0.0:1186            0.0.0.0:*                
  LISTEN   22907/ndb_mgmd
  
  看到1186端口開放了說明啓動是正常的.
 
  在數據節點啓動相關服務:
  #/usr/local/mysql/bin/ndbd --initial
  #netstat -lntpu
  tcp        0      0 10.10.1.65:32975            0.0.0.0:*                    LISTEN      1901/ndbd                  
tcp        0      0 10.10.1.65:32976            0.0.0.0:*                   LISTEN      1901/ndbd           
tcp        0      0 10.10.1.65:32977            0.0.0.0:*                   LISTEN      1901/ndbd  
 
#service mysqld start
#netstat -lntpu
tcp        0      0 :::3306                     :::*                        LISTEN      2258/mysqld 
 
可以看到相關的ndbd服務以及mysql已經啓動ok了.
 
5.功能測試
 
  到管理節點查看下相關服務狀態
 # ndb_mgm
 ndb_mgm> show
 Connected to Management Server at: localhost:1186
 Cluster Configuration
 ---------------------
 [ndbd(NDB)]     2 node(s)
 id=2    @10.10.1.65  (mysql-5.1.37 ndb-7.0.8, Nodegroup: 0, Master)
 id=3    @10.10.1.58  (mysql-5.1.37 ndb-7.0.8, Nodegroup: 0)
 [ndb_mgmd(MGM)] 1 node(s)
 id=1    @10.10.1.151  (mysql-5.1.37 ndb-7.0.8)
 [mysqld(API)]   2 node(s)
 id=4    @10.10.1.65  (mysql-5.1.37 ndb-7.0.8)
 id=5    @10.10.1.58  (mysql-5.1.37 ndb-7.0.8)
 
 可以看到這裏的數據節點、管理節點、sql節點都是正常的.
 
 現在我們在其中一個數據節點上進行相關數據庫的創建,然後到另外一個數據節點上看看數據是否同步
 
 # /usr/local/mysql/bin/mysql -u root -p
 mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema | 
| mysql              | 
| ndb_2_fs           | 
| test               | 
+--------------------+
mysql> create database aa;
mysql> use aa
mysql> CREATE TABLE ctest2 (i INT) ENGINE=NDB; //這裏必須指定數據庫表的引擎爲NDB,否則同
                                                 步失敗
mysql> INSERT INTO ctest2 () VALUES (1);
mysql> SELECT * FROM ctest2;
+------+
| i    |
+------+
|    1 | 
+------+
 
現在到另外一個數據節點查看下aa數據庫是否同步過來了.
 
#/usr/local/mysql/bin/mysql -u root -p
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema | 
| aa                 | 
| bb                 | 
| mysql              | 
| ndb_3_fs           | 
| test               | 
+--------------------+
mysql> use aa
mysql> select * from ctest2;
+------+
| i    |
+------+
|    1 | 
+------+
 
從上面可以看到數據已經同步了,mysql集羣環境已經搭建完成.
 
6.破壞性測試
  
  大家在上面可以看到10.10.1.65作爲主的數據節點,我現在把10.10.1.65這臺機器關閉,看下有什麼結果
  ndb_mgm> show
  Cluster Configuration
  ---------------------
  [ndbd(NDB)]     2 node(s)
  id=2 (not connected, accepting connect from 10.10.1.65)
  id=3    @10.10.1.58  (mysql-5.1.37 ndb-7.0.8, Nodegroup: 0, Master)
  [ndb_mgmd(MGM)] 1 node(s)
  id=1    @10.10.1.151  (mysql-5.1.37 ndb-7.0.8)
  [mysqld(API)]   2 node(s)
  id=4 (not connected, accepting connect from any host)
  id=5    @10.10.1.58  (mysql-5.1.37 ndb-7.0.8)
 
  從上面可以發現現在10.10.1.65這臺機器的數據節點和sql節點已經連接不上了,10.10.1.58成爲了主數
  據節點,我們現在在10.10.1.58數據節點上創建一個表,然後恢復10.10.1.65的數據節點,看下它是否
  把數據同步過來了.
 
  先在10.10.1.58數據節點做如下操作:
  mysql> create table ctest3(id int(11)) engine=NDB;
  mysql> show tables;
+--------------+
| Tables_in_aa |
+--------------+
| ctest2       | 
| ctest3       | 
+--------------+
mysql> insert into ctest3 values(1);
mysql> select * from ctest3;
+------+
| id   |
+------+
|    1 | 
+------+
 
然後我們恢復10.10.1.65數據節點,查看下ctest3數據是否同步過來了.
 
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema | 
| aa                 | 
| bb                 | 
| mysql              | 
| ndb_2_fs           | 
| test               | 
+--------------------+
mysql> use aa
mysql> show tables; 
+--------------+
| Tables_in_aa |
+--------------+
| ctest        | 
| ctest2       | 
| ctest3       | 
+--------------+
mysql> select * from ctest3;
+------+
| id   |
+------+
|    1 | 
+------+
 
可以看到10.10.1.65數據節點已經把10.10.1.58數據節點的數據同步過來了,說明mysql集羣是沒有問題的了.隨後做下mysql性能相關的測試.
發佈了19 篇原創文章 · 獲贊 0 · 訪問量 11萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章