1、準備三台伺服器
2、為三台機器分別安裝Linux操作系統(Oracle Linux / RHEL 6.5 x86_64bit)
3、分別IP地址
管理節點 192.168.1.110 (負責管理整個集群)
SQL節點 192.168.1.111 (負責操作資料庫)
SQL節點 192.168.1.112 (負責操作資料庫)
數據節點 192.168.1.111 (負責存儲數據)
數據節點 192.168.1.112 (負責存儲數據)
SQL節點和數據節點可以同在一台機器上
4、修改三台伺服器的/etc/hosts文件,修改完後的內容如下:
127.0.0.1 localhost localhost.domain
192.168.1.110 node01
192.168.1.111 node02
192.168.1.112 node03
5、修改三台伺服器的/etc/sysconfig/nework文件,修改完後的內容分別如下:
NETWORKING=yes
HOSTNAME=node01
GATEWAY=192.168.1.1 (網關地址因所處網路的不同而不同)
NETWORKING=yes
HOSTNAME=node02
GATEWAY=192.168.1.1 (網關地址因所處網路的不同而不同)
NETWORKING=yes
HOSTNAME=node03
GATEWAY=192.168.1.1 (網關地址因所處網路的不同而不同)
6、分別重啟三台伺服器
7、下載NDB集群軟體mysql-cluster-advanced-7.3.5-linux-glibc2.5-x86_64.tar.gz
集群軟體有三種格式:
a、以tar.gz結尾的二制進格式
b、以rpm結尾的rpm包形式
c、以源文件編譯安裝方式
rpm包安裝方式,由於是自動安裝的,所以不方便配置軟體安裝位置和數據存儲位置
所以通常選用.tar.gz結尾的二進位格式的安裝文件
注意:mysql-cluster-advanced-7.3.5-linux-glibc2.5-x86_64.tar.gz包含mysql資料庫軟體和NDB集群軟體
8、分別複製mysql-cluster-advanced-7.3.5-linux-glibc2.5-x86_64.tar.gz文件到三台伺服器上的/usr/local/目錄下
9、新建用戶mysql
# groupadd mysql
# useradd -r -g mysql mysql (由於mysql用戶只是用於安裝配置NDB集群或mysql軟體,而不用用於登陸系統)
(所以以-r參數來創建mysql用戶,並且不用為該用戶設置密碼)
10、分別在三台伺服器上解壓mysql-cluster-advanced-7.3.5-linux-glibc2.5-x86_64.tar.gz文件
# cd /usr/local
# tar zxvf mysql-cluster-advanced-7.3.5-linux-glibc2.5-x86_64.tar.gz
# ln -s mysql-cluster-advanced-7.3.5-linux-glibc2.5-x86_64 mysql
# chown -R mysql.mysql mysql-cluster-advanced-7.3.5-linux-glibc2.5-x86_64
# cd mysql
# chown -R mysql.mysql .
配置完成以後,結果如下
wKioL1lAeTqheYK1AAEU8vBufL0149.png-wh_50
11、在192.168.1.111和192.168.1.112兩個數據節點(兩台伺服器)上安裝mysql資料庫軟體
由於是二進位安裝,所以mysql資料庫軟體就安裝在/usr/local/mysql下,
但資料庫的數據可以存放到其它地方,如/u01/app/mysql/data/下面
注意:以下命令在兩台數據節點伺服器上都要執行
# mkdir -p /u01/app/mysql/data
# chown -R mysql.mysql /u01
# cd /usr/local/mysql
# scripts/mysql_install_db –basedir=/usr/local/mysql –datadir=/u01/app/mysql/data –user=mysql
執行完這條命令以後,資料庫的數據文件(包括mysql,test , performance_schema等資料庫)就被安裝到
/u01/app/mysql/data目錄下
# cd /u01/app/mysql/bin
# cp ndbd /usr/local/bin/
# cp ndbmtd /usr/local/bin/
然後將啟動資料庫服務的啟動文件複製到/etc/rc.d/init.d/目錄下
# cp support-files/mysql.server /etc/rc.d/init.d/mysqld (改名)
執行完上面這條命令以後,就可以使用service mysqld start | stop | restart命令來管理資料庫服務
# cp my.cnf /etc/my.cnf
# vi /etc/my.cnf
[mysqld]
ndbcluster
basedir=/usr/local/mysql
datadir=/u01/app/mysql/data
port=3306
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
[mysql_cluster]
ndb-connectstring=192.168.1.110
再次注意:以上命令在兩台數據節點伺服器上都要執行
到此,數據節點和SQL節點的安裝配置就結束,如果數據節點和SQL節點是分開在不同的機器上,則每個數據節點
和每個SQL節點都要執行以上命令。
12、在管理節點上進行安裝配置
由於第10步已經解壓縮mysql-cluster-advanced-7.3.5-linux-glibc2.5-x86_64.tar.gz 安裝包到/usr/local
目錄下,並進行軟連接等操作,所以這些工作就不用重複做,接著往下配置即可
# cd /usr/local/mysql
# mkdir mysql-cluster (創建mysql-cluster目錄,後面啟動集群管理服務時要用)
# cp bin/ndb_mgm* /usr/local/bin/
# cd /var/lib
# mkdir mysql-cluster
# cd mysql-cluster
# vi config.ini (這是管理節點上的集群配置文件,很重要)
[ndbd default]
NoOfReplicas=1 # Number of replicas
DataMemory=80M # How much memory to allocate for data storage
IndexMemory=18M # How much memory to allocate for index storage
# For DataMemory and IndexMemory, we have used the
# default values. Since the “world” database takes up
# only about 500KB, this should be more than enough for
# this example Cluster setup.
[tcp default]
# This the default; however, you can use any
# port that is free for all the hosts in the cluster
# Note: It is recommended that you do not specify the port
# number at all and simply allow the default value to be used
# instead
[ndb_mgmd]
hostname=192.168.1.110 # Hostname or IP address of MGM node
datadir=/var/lib/mysql-cluster # Directory for MGM node log files
NodeId=1
[ndbd]
hostname=192.168.1.111 # Hostname or IP address
datadir=/u01/app/mysql/data # Directory for this data node’s data files
NodeId=2
[ndbd]
hostname=192.168.1.112 # Hostname or IP address
datadir=/u01/app/mysql/data # Directory for this data node’s data files
NodeId=3
[mysqld]
hostname=192.168.1.111 # Hostname or IP address
NodeId=4 # (additional mysqld connections can be
# specified for this node for various
# purposes such as running ndb_restore)
[mysqld]
hostname=192.168.1.112 # Hostname or IP address
NodeId=5 # (additional mysqld connections can be
# specified for this node for various
# purposes such as running ndb_restore)
配置說明:
[ndbd default] 這部分是公共部分,對於每一個數據節點都有效,只需要配置一份
NoOfReplicas=1 數據鏡像幾份(各數據節點之間相互備份)
[tcp default] 針對每個數據節點及管理節點之間使用哪個埠進行通訊,
在舊版本的NDB集群軟體配置時,這個地方通常配置portnumber=2202
但新版的NDB軟體這裡不需要配置,並且MySQL官方也強烈建議不要配置
[ndb_mgmd] 管理節點的配置部分(通常只有一個)
注意NodeId=1指明管理節點的節點ID為1,如果不指定,在啟動集群時,會報錯
hostname=192.168.1.110 指明管理節點的IP地址
datadir=/var/lib/mysql-cluster 指明集群管理日誌存放的位置
[ndbd] 數據節點配置部分,有幾個數據節點就配置幾個[ndbd]
hostname=192.168.1.111 指明數據節點的IP地址
datadir=/u01/app/mysql/data 指明數據節點上的資料庫文件存放的位置
NodeId=2 指明該數據節點在整個集群中的nodeid號(很重要)
[mysqld] SQL節點配置部分,有幾個SQL節點,就配置幾個[mysqld]
13、配置好上面的所有配置以後就可以在管理節點上啟動怎個集群
注意: 在管理節點上,不用執行/usr/local/mysql/scripts/mysql_install_db –basedir= –datadir= –user=命令
來安裝資料庫。
# ndb_mgmd -f /var/lib/mysql-cluster/config.ini (第一次啟動時這樣執行,如果後面新添加數據節點)
(執行此命令時,需要帶上–initital參數,否則新添加的節點)
(無法被識別)
(# ndb_mgmd -f /var/lib/mysql-cluster/config.ini –initial)
# ndb_mgm (查看啟動後的集群狀態,看看集群是否成功啟動,如果看到以下內容,表示集群已經成功配置並啟動)
[root@mysql01 mysql-cluster]# ndb_mgm
— NDB Cluster — Management Client —
ndb_mgm> show
Connected to Management Server at: localhost:1186
Cluster Configuration
———————
[ndbd(NDB)] 2 node(s)
id=2 (not connected, accepting connect from 192.168.1.111)
id=3 (not connected, accepting connect from 192.168.1.112)
[ndb_mgmd(MGM)] 1 node(s)
id=1 @192.168.1.110 (mysql-5.6.17 ndb-7.3.5)
[mysqld(API)] 2 node(s)
id=4 (not connected, accepting connect from 192.168.1.111)
id=5 (not connected, accepting connect from 192.168.1.112)
現在看到集群中包含兩個數據節點、一個管理節點、兩個SQL節點,但是數據節點和SQL節點都還沒有啟動,
所以顯示的連接狀態是not connected
14、分別登陸兩台數據節點執行以下命令啟動數據節點
# ndbd –initial (第一次啟動時,需要加–initial來初始化數據節點,第二次啟動時,就不需要這個參數)
[root@mysql02 support-files]# ndbd –initial
2014-06-12 05:42:04 [ndbd] INFO — Angel connected to ‘192.168.1.110:1186’
2014-06-12 05:42:04 [ndbd] INFO — Angel allocated nodeid: 2
[root@mysql03 bin]# ndbd –initial
2014-06-12 05:41:38 [ndbd] INFO — Angel connected to ‘192.168.1.110:1186’
2014-06-12 05:41:38 [ndbd] INFO — Angel allocated nodeid: 3
15、再登陸到管理節點查看現在整個集群的狀態
ndb_mgm> show
Cluster Configuration
———————
[ndbd(NDB)] 2 node(s)
id=2 @192.168.1.111 (mysql-5.6.17 ndb-7.3.5, Nodegroup: 0, *)
id=3 @192.168.1.112 (mysql-5.6.17 ndb-7.3.5, Nodegroup: 1)
[ndb_mgmd(MGM)] 1 node(s)
id=1 @192.168.1.110 (mysql-5.6.17 ndb-7.3.5)
[mysqld(API)] 2 node(s)
id=4 (not connected, accepting connect from 192.168.1.111)
id=5 (not connected, accepting connect from 192.168.1.112)
現在可以看到,兩個數據節點已經連接上來,表示兩個數據節點成功啟動
16、分別登陸到兩個SQL節點上啟動SQL節點
[root@mysql02 ~]# cd /usr/local/mysql/bin
[root@mysql02 bin]# ./mysqld_safe –user=mysql
140612 05:51:00 mysqld_safe Logging to ‘/u01/app/mysql/data/mysql02.err’.
140612 05:51:00 mysqld_safe Starting mysqld daemon with databases from /u01/app/mysql/data
[root@mysql03 ~]# cd /usr/local/mysql/bin
[root@mysql03 bin]# ./mysqld_safe –user=mysql
140612 05:52:07 mysqld_safe Logging to ‘/u01/app/mysql/data/mysql03.err’.
140612 05:52:07 mysqld_safe Starting mysqld daemon with databases from /u01/app/mysql/data
17、再次回到管理節點查看整個集群的狀態
ndb_mgm> show
Cluster Configuration
———————
[ndbd(NDB)] 2 node(s)
id=2 @192.168.1.111 (mysql-5.6.17 ndb-7.3.5, Nodegroup: 0, *)
id=3 @192.168.1.112 (mysql-5.6.17 ndb-7.3.5, Nodegroup: 1)
[ndb_mgmd(MGM)] 1 node(s)
id=1 @192.168.1.110 (mysql-5.6.17 ndb-7.3.5)
[mysqld(API)] 2 node(s)
id=4 @192.168.1.111 (mysql-5.6.17 ndb-7.3.5)
id=5 @192.168.1.112 (mysql-5.6.17 ndb-7.3.5)
到此整個集群就搭建完成,並成功啟動運行
18、安全關閉整個集群
首先登陸到兩個SQL節點,執行service mysqld stop命令關閉SQL節點
[root@mysql02 ~]# service mysqld stop
Shutting down MySQL…… SUCCESS!
[root@mysql03 ~]# service mysqld stop
Shutting down MySQL….. SUCCESS!
然後登陸到管理節點上,執行shutdown命令關閉整個集群
[root@mysql01 mysql-cluster]# ndb_mgm
— NDB Cluster — Management Client —
ndb_mgm> show
Connected to Management Server at: localhost:1186
Cluster Configuration
———————
[ndbd(NDB)] 2 node(s)
id=2 (not connected, accepting connect from 192.168.1.111)
id=3 (not connected, accepting connect from 192.168.1.112)
[ndb_mgmd(MGM)] 1 node(s)
id=1 @192.168.1.110 (mysql-5.6.17 ndb-7.3.5)
[mysqld(API)] 2 node(s)
id=4 (not connected, accepting connect from 192.168.1.111)
id=5 (not connected, accepting connect from 192.168.1.112)
ndb_mgm> shutdown
1 NDB Cluster node(s) have shutdown.
Disconnecting to allow management server to shutdown.
ndb_mgm> exit
7 測試。
1、從SQL節點A登錄,創建資料庫和表,進行簡單測試。
mysql> create database zxztest ;
mysql> use zxztest;
Database changed
mysql> create table test1(id int,name varchar(10)) engine=ndb ;
mysql> insert into test1 values(1,’zhaoxuezhi’);
mysql> select * from test1 ;
+——+———+
| id | name |
+——+———+
| 1 | zhaoxuezhi |
+——+———+
以下文章點擊率最高
Loading…