#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效能相關的測試.
集群安裝mysql 集群rpm安裝MySQL
安裝mysql資料庫 b 安裝mysql源 yum localinstall mysql57 community release el7 8.noarch.rpm 若結尾出現complete 則說明mysql源安裝完成 c 檢測是否安裝完成 yum repolist enabled grep mys...
mysql集群配置
需要安裝軟體 所有的節點都必須安裝,不需要安裝mysql mysql server,mysql cluster有自帶的 mysql cluster gpl 7.3.7 linux glibc2.5 x86 64.tar.gz 管理節點 192.168.3.101 啟動服務 ndb mgmd sql1...
MySQL集群配置
chown r mysql data chgrp r mysql cp support files mysql.server etc rc.d init.d mysqld chmod x etc rc.d init.d mysqld chkconfig add mysqld 此時不要啟動mysql!...