Redhat6.5下MySQL5.7集群配置完整版

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…

     

如果這文章對你有幫助,請掃左上角微信支付-支付寶,給於打賞,以助博客運營