Redhat 6.5下MySQL5.6集群配置方法完整版
1、準(zhǔn)備三臺(tái)服務(wù)器
2、為三臺(tái)機(jī)器分別安裝Linux操作系統(tǒng)(Oracle Linux / RHEL 6.5 x86_64bit)
3、分別IP地址
管理節(jié)點(diǎn) 192.168.1.110 (負(fù)責(zé)管理整個(gè)集群)
SQL節(jié)點(diǎn) 192.168.1.111 (負(fù)責(zé)操作數(shù)據(jù)庫)
SQL節(jié)點(diǎn) 192.168.1.112 (負(fù)責(zé)操作數(shù)據(jù)庫)
數(shù)據(jù)節(jié)點(diǎn) 192.168.1.111 (負(fù)責(zé)存儲(chǔ)數(shù)據(jù))
數(shù)據(jù)節(jié)點(diǎn) 192.168.1.112 (負(fù)責(zé)存儲(chǔ)數(shù)據(jù))
SQL節(jié)點(diǎn)和數(shù)據(jù)節(jié)點(diǎn)可以同在一臺(tái)機(jī)器上
4、修改三臺(tái)服務(wù)器的/etc/hosts文件,修改完后的內(nèi)容如下:
127.0.0.1 localhost localhost.domain
192.168.1.110 node01
192.168.1.111 node02
192.168.1.112 node03
5、修改三臺(tái)服務(wù)器的/etc/sysconfig/nework文件,修改完后的內(nèi)容分別如下:
NETWORKING=yes
HOSTNAME=node01
GATEWAY=192.168.1.1 (網(wǎng)關(guān)地址因所處網(wǎng)絡(luò)的不同而不同)
NETWORKING=yes
HOSTNAME=node02
GATEWAY=192.168.1.1 (網(wǎng)關(guān)地址因所處網(wǎng)絡(luò)的不同而不同)
NETWORKING=yes
HOSTNAME=node03
GATEWAY=192.168.1.1 (網(wǎng)關(guān)地址因所處網(wǎng)絡(luò)的不同而不同)
6、分別重啟三臺(tái)服務(wù)器
7、下載NDB集群軟件mysql-cluster-advanced-7.3.5-linux-glibc2.5-x86_64.tar.gz
集群軟件有三種格式:
a、以tar.gz結(jié)尾的二制進(jìn)格式
b、以rpm結(jié)尾的rpm包形式
c、以源文件編譯安裝方式
rpm包安裝方式,由于是自動(dòng)安裝的,所以不方便配置軟件安裝位置和數(shù)據(jù)存儲(chǔ)位置
所以通常選用.tar.gz結(jié)尾的二進(jìn)制格式的安裝文件
注意:mysql-cluster-advanced-7.3.5-linux-glibc2.5-x86_64.tar.gz包含了mysql數(shù)據(jù)庫軟件和NDB集群軟件
8、分別復(fù)制mysql-cluster-advanced-7.3.5-linux-glibc2.5-x86_64.tar.gz文件到三臺(tái)服務(wù)器上的/usr/local/目錄下
9、新建用戶mysql
# groupadd mysql
# useradd -r -g mysql mysql (由于mysql用戶只是用于安裝配置NDB集群或mysql軟件,而不用用于登陸系統(tǒng))
(所以以-r參數(shù)來創(chuàng)建mysql用戶,并且不用為該用戶設(shè)置密碼)
10、分別在三臺(tái)服務(wù)器上解壓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 .
配置完成以后,結(jié)果如下
11、在192.168.1.111和192.168.1.112兩個(gè)數(shù)據(jù)節(jié)點(diǎn)(兩臺(tái)服務(wù)器)上安裝mysql數(shù)據(jù)庫軟件
由于是二進(jìn)制安裝,所以mysql數(shù)據(jù)庫軟件就安裝在/usr/local/mysql下,
但數(shù)據(jù)庫的數(shù)據(jù)可以存放到其它地方,如/u01/app/mysql/data/下面
注意:以下命令在兩臺(tái)數(shù)據(jù)節(jié)點(diǎn)服務(wù)器上都要執(zhí)行
# 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
執(zhí)行完這條命令以后,數(shù)據(jù)庫的數(shù)據(jù)文件(包括mysql,test , performance_schema等數(shù)據(jù)庫)就被安裝到了
/u01/app/mysql/data目錄下了
# cp bin/ndbd /usr/local/bin/
# cp bin/ndbmtd /usr/local/bin/
然后將啟動(dòng)數(shù)據(jù)庫服務(wù)的啟動(dòng)文件復(fù)制到/etc/rc.d/init.d/目錄下
# cp support-files/mysql.server /etc/rc.d/init.d/mysqld (改名)
執(zhí)行完上面這條命令以后,就可以使用service mysqld start | stop | restart命令來管理數(shù)據(jù)庫服務(wù)了
# 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
再次注意:以上命令在兩臺(tái)數(shù)據(jù)節(jié)點(diǎn)服務(wù)器上都要執(zhí)行
到此,數(shù)據(jù)節(jié)點(diǎn)和SQL節(jié)點(diǎn)的安裝配置就結(jié)束了,如果數(shù)據(jù)節(jié)點(diǎn)和SQL節(jié)點(diǎn)是分開在不同的機(jī)器上,則每個(gè)數(shù)據(jù)節(jié)點(diǎn)
和每個(gè)SQL節(jié)點(diǎn)都要執(zhí)行以上命令。
12、在管理節(jié)點(diǎn)上進(jìn)行安裝配置
由于第10步已經(jīng)解壓縮mysql-cluster-advanced-7.3.5-linux-glibc2.5-x86_64.tar.gz 安裝包到了/usr/local
目錄下,并進(jìn)行了軟連接等操作,所以這些工作就不用重復(fù)做了,接著往下配置即可
# cd /usr/local/mysql
# mkdir mysql-cluster (創(chuàng)建mysql-cluster目錄,后面啟動(dòng)集群管理服務(wù)時(shí)要用)
# cp bin/ndb_mgm* /usr/local/bin/
# cd /var/lib
# mkdir mysql-cluster
# cd mysql-cluster
# vi config.ini (這是管理節(jié)點(diǎn)上的集群配置文件,很重要)
[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] 這部分是公共部分,對(duì)于每一個(gè)數(shù)據(jù)節(jié)點(diǎn)都有效,只需要配置一份
NoOfReplicas=1 數(shù)據(jù)鏡像幾份(各數(shù)據(jù)節(jié)點(diǎn)之間相互備份)
[tcp default] 針對(duì)每個(gè)數(shù)據(jù)節(jié)點(diǎn)及管理節(jié)點(diǎn)之間使用哪個(gè)端口進(jìn)行通訊,
在舊版本的NDB集群軟件配置時(shí),這個(gè)地方通常配置portnumber=2202
但新版的NDB軟件這里不需要配置,并且MySQL官方也強(qiáng)烈建議不要配置
[ndb_mgmd] 管理節(jié)點(diǎn)的配置部分(通常只有一個(gè))
注意NodeId=1指明管理節(jié)點(diǎn)的節(jié)點(diǎn)ID為1,如果不指定,在啟動(dòng)集群時(shí),會(huì)報(bào)錯(cuò)
hostname=192.168.1.110 指明管理節(jié)點(diǎn)的IP地址
datadir=/var/lib/mysql-cluster 指明集群管理日志存放的位置
[ndbd] 數(shù)據(jù)節(jié)點(diǎn)配置部分,有幾個(gè)數(shù)據(jù)節(jié)點(diǎn)就配置幾個(gè)[ndbd]
hostname=192.168.1.111 指明數(shù)據(jù)節(jié)點(diǎn)的IP地址
datadir=/u01/app/mysql/data 指明數(shù)據(jù)節(jié)點(diǎn)上的數(shù)據(jù)庫文件存放的位置
NodeId=2 指明該數(shù)據(jù)節(jié)點(diǎn)在整個(gè)集群中的nodeid號(hào)(很重要)
[mysqld] SQL節(jié)點(diǎn)配置部分,有幾個(gè)SQL節(jié)點(diǎn),就配置幾個(gè)[mysqld]
13、配置好上面的所有配置以后就可以在管理節(jié)點(diǎn)上啟動(dòng)怎個(gè)集群了
注意: 在管理節(jié)點(diǎn)上,不用執(zhí)行/usr/local/mysql/scripts/mysql_install_db --basedir= --datadir= --user=命令
來安裝數(shù)據(jù)庫了。
# ndb_mgmd -f /var/lib/mysql-cluster/config.ini (第一次啟動(dòng)時(shí)這樣執(zhí)行,如果后面新添加了數(shù)據(jù)節(jié)點(diǎn))
(執(zhí)行此命令時(shí),需要帶上--initital參數(shù),否則新添加的節(jié)點(diǎn))
(無法被識(shí)別)
(# ndb_mgmd -f /var/lib/mysql-cluster/config.ini --initial)
# ndb_mgm (查看啟動(dòng)后的集群狀態(tài),看看集群是否成功啟動(dòng),如果看到以下內(nèi)容,表示集群已經(jīng)成功配置并啟動(dòng))
[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)
現(xiàn)在看到集群中包含兩個(gè)數(shù)據(jù)節(jié)點(diǎn)、一個(gè)管理節(jié)點(diǎn)、兩個(gè)SQL節(jié)點(diǎn),但是數(shù)據(jù)節(jié)點(diǎn)和SQL節(jié)點(diǎn)都還沒有啟動(dòng),
所以顯示的連接狀態(tài)是not connected
14、分別登陸兩臺(tái)數(shù)據(jù)節(jié)點(diǎn)執(zhí)行以下命令啟動(dòng)數(shù)據(jù)節(jié)點(diǎn)
# ndbd --initial (第一次啟動(dòng)時(shí),需要加--initial來初始化數(shù)據(jù)節(jié)點(diǎn),第二次啟動(dòng)時(shí),就不需要這個(gè)參數(shù)了)
[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、再登陸到管理節(jié)點(diǎn)查看現(xiàn)在整個(gè)集群的狀態(tài)
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)
現(xiàn)在可以看到,兩個(gè)數(shù)據(jù)節(jié)點(diǎn)已經(jīng)連接上來了,表示兩個(gè)數(shù)據(jù)節(jié)點(diǎn)成功啟動(dòng)了
16、分別登陸到兩個(gè)SQL節(jié)點(diǎn)上啟動(dòng)SQL節(jié)點(diǎn)
[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、再次回到管理節(jié)點(diǎn)查看整個(gè)集群的狀態(tài)
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)
到此整個(gè)集群就搭建完成,并成功啟動(dòng)運(yùn)行了
18、安全關(guān)閉整個(gè)集群
首先登陸到兩個(gè)SQL節(jié)點(diǎn),執(zhí)行service mysqld stop命令關(guān)閉SQL節(jié)點(diǎn)
[root@mysql02 ~]# service mysqld stop
Shutting down MySQL...... SUCCESS!
[root@mysql03 ~]# service mysqld stop
Shutting down MySQL..... SUCCESS!
然后登陸到管理節(jié)點(diǎn)上,執(zhí)行shutdown命令關(guān)閉整個(gè)集群
[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節(jié)點(diǎn)A登錄,創(chuàng)建數(shù)據(jù)庫和表,進(jìn)行簡單測試。
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,'linuxidc');
mysql> select * from test1 ;
+------+---------+
| id | name |
+------+---------+
| 1 | linuxidc |
+------+---------+
相關(guān)文章
Linux開機(jī)自啟動(dòng)服務(wù)兩種方式介紹
大家好,本篇文章主要講的是Linux開機(jī)自啟動(dòng)服務(wù)兩種方式介紹,感興趣的同學(xué)趕快來看一看吧,對(duì)你有幫助的話記得收藏一下,方便下次瀏覽2021-12-12戴爾Dell?R630配置raid?安裝centos系統(tǒng)
這篇文章主要介紹了戴爾R630服務(wù)器配置raid后安裝centos7.9的方法,需要的朋友可以參考下2024-03-03Linux CentOS6.6系統(tǒng)中安裝mysql源碼包的方法
Linux系統(tǒng)中如何安裝mysql的源碼包呢?這里以CentOS6.6系統(tǒng)中安裝MySQL的源碼包,進(jìn)行講解。本文分步驟給大家介紹的非常詳細(xì),感興趣的朋友一起看看吧2016-10-10VScode Remote SSH通過遠(yuǎn)程編輯與調(diào)試代碼
這篇文章主要介紹了VScode Remote SSH通過遠(yuǎn)程編輯與調(diào)試代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-05-05詳解CentOS 6.4 添加永久靜態(tài)路由所有方法匯總
這篇文章主要介紹了詳解CentOS 6.4 添加永久靜態(tài)路由所有方法匯總,非常具有實(shí)用價(jià)值,需要的朋友可以參考下。2016-12-12Xshell遠(yuǎn)程連接linux詳細(xì)步驟(小白必備)
本文主要介紹了Xshell遠(yuǎn)程連接linux詳細(xì)步驟,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-08-08