RhelServer7下MySQL56集群安装笔记.docx
《RhelServer7下MySQL56集群安装笔记.docx》由会员分享,可在线阅读,更多相关《RhelServer7下MySQL56集群安装笔记.docx(13页珍藏版)》请在冰豆网上搜索。
RhelServer7下MySQL56集群安装笔记
Rhel-Server7下MySQL5.6
集群安装笔记
编制日期:
2016.5.05
编制人:
马飞
一、环境准备
1.1安装操作系统设置IP
准备三台主机,分别安装Rhel-Server764位操作系统,IP地址如下:
节点说明
IP地址
功能描述
管理节点
192.168.0.182
负责管理整个集群
SQL节点
192.168.0.183
负责操作数据库
SQL节点
192.168.0.184
负责操作数据库
数据节点
192.168.0.183
负责存储数据
数据节点
192.168.0.184
负责存储数据
说明:
SQL节点和数据节点可以同在一台机器上
1.2修改/etc/hosts文件
修改三台服务器的/etc/hosts文件为如下内容
127.0.0.1localhostlocalhost.domain
192.168.0.182node01
192.168.0.183node02
192.168.0.184node03
1.3修改三台服务器的/etc/sysconfig/network
分别修改三台服务器中的/etc/sysconfig/network文件内容为
node01,node02,node03
1.4卸载系统自带的mysql软件
1.4.1卸载rpm包
rpm–qa|grep–Imysql
perl-DBD-MySQL-4.023-5.el7.x86_64
qt-mysql-4.8.5-8.el7.x86_64
akonadi-mysql-1.9.2-4.el7.x86_64
rpm-evakonadi-mysql-1.9.2-4.el7.x86_64
rpm-evqt-mysql-4.8.5-8.el7.x86_64
rpm-evperl-DBD-MySQL-4.023-5.el7.x86_64
错误:
依赖检测失败:
perl-DBD-MySQL被(已安裝)mariadb-server-1:
5.5.35-3.el7.x86_64需要
卸载perl-DBD-MySQL-4.023-5.el7.x86_64时出错,提示该包依赖mariadb-server-1:
5.5.35-3.el7.x86_64包,因此先卸载该包。
rpm-evmariadb-server-1:
5.5.35-3.el7.x86_64
rpm-evperl-DBD-MySQL-4.023-5.el7.x86_64
1.4.2收集mysql对应的文件夹信息
find/-namemysql
/var/lib/pcp/config/pmlogconf/mysql
/var/lib/pcp/pmdas/mysql
/usr/bin/mysql
/usr/lib64/mysql
/usr/share/mysql
whereismysql
mysql:
/usr/bin/mysql/usr/lib64/mysql/usr/share/mysql/usr/share/man/man1/mysql.1.gz
1.4.3删除mysql对应的文件夹
rm-rf/var/lib/pcp/config/pmlogconf/mysql
rm-rf/var/lib/pcp/pmdas/mysql
rm-rf/usr/lib64/mysql
rm-rf/usr/share/mysql
rm-rf/usr/bin/mysql
rm-rf/usr/share/man/man1/mysql.1.gz
1.5下载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集群软件
1.6复制软件至其它节点
分别复制mysql-cluster-advanced-7.3.5-linux-glibc2.5-x86_64.tar.gz文件到三台服务器上的/usr/local/目录下
二、软件安装
2.1新建mysql用户
groupaddmysql
useradd-r-gmysqlmysql
说明:
由于mysql用户只是用于安装配置NDB集群或mysql软件,而不用用于登陆系统,
所以以-r参数来创建mysql用户,并且不用为该用户设置密码。
2.2安装NDB集群软件
2.2.1解压ndb集群软件
分别在三台服务器上解压mysql-cluster-gpl-7.4.11-linux-glibc2.5-x86_64.tar.gz文件
cd/home/server
tar-zxvfmysql-cluster-gpl-7.4.11-linux-glibc2.5-x86_64.tar.gz-C/usr/local
cd/usr/local
ln-smysql-cluster-gpl-7.4.9-linux-glibc2.5-x86_64mysql
chown-Rmysql.mysqlmysql-cluster-gpl-7.4.9-linux-glibc2.5-x86_64
cdmysql
2.2.2在node02,node03两节点上安装mysql数据库软件
在node02和node03两个数据节点(两台服务器)上安装mysql数据库软件.
由于是二进制安装,所以mysql数据库软件就安装在/usr/local/mysql下,
但数据库的数据可以存放到其它地方,如/u01/app/mysql/data/下面
注意:
以下命令在两台数据节点服务器上都要执行
mkdir-p/u01/app/mysql/data
chown-Rmysql.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目录下了
cp/usr/local/mysql/bin/ndbd/usr/local/bin/
cp/usr/local/mysql/bin/ndbmtd/usr/local/bin/
cp/usr/local/mysql/support-files/mysql.server/etc/rc.d/init.d/mysqld
执行完上面这条命令以后,就可以使用servicemysqldstart|stop|restart命令来管理数据库服务了
cp/usr/local/mysql/f/etc/f
#vi/etc/f
[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.0.182
注意:
以上命令在两台数据节点服务器上都要执行.
到此,数据节点和SQL节点的安装配置就结束了,如果数据节点和SQL节点是分开在不同的机器上,则每个数据节点和每个SQL节点都要执行以上命令。
2.2.3在管理节点上进行安装配置
由于第10步已经解压缩mysql-cluster-advanced-7.3.5-linux-glibc2.5-x86_64.tar.gz安装包到了/usr/local目录下,并进行了软连接等操作,所以这些工作就不用重复做了,接着往下配置。
cd/usr/local/mysql
mkdirmysql-cluster(创建mysql-cluster目录,后面启动集群管理服务时要用)
cpbin/ndb_mgm*/usr/local/bin/
cd/var/lib
mkdirmysql-cluster
cdmysql-cluster
#viconfig.ini(这是管理节点上的集群配置文件,很重要)
[ndbddefault]
NoOfReplicas=1#Numberofreplicas
DataMemory=80M#Howmuchmemorytoallocatefordatastorage
IndexMemory=18M#Howmuchmemorytoallocateforindexstorage
#ForDataMemoryandIndexMemory,wehaveusedthe
#defaultvalues.Sincethe"world"databasetakesup
#onlyabout500KB,thisshouldbemorethanenoughfor
#thisexampleClustersetup.
[tcpdefault]
#Thisthedefault;however,youcanuseany
#portthatisfreeforallthehostsinthecluster
#Note:
Itisrecommendedthatyoudonotspecifytheport
#numberatallandsimplyallowthedefaultvaluetobeused
#instead
[ndb_mgmd]
hostname=192.168.0.182#HostnameorIPaddressofMGMnode
datadir=/var/lib/mysql-cluster#DirectoryforMGMnodelogfiles
NodeId=1
[ndbd]
hostname=192.168.0.183#HostnameorIPaddress
datadir=/u01/app/mysql/data#Directoryforthisdatanode'sdatafiles
NodeId=2
[ndbd]
hostname=192.168.0.184#HostnameorIPaddress
datadir=/u01/app/mysql/data#Directoryforthisdatanode'sdatafiles
NodeId=3
[mysqld]
hostname=192.168.0.183#HostnameorIPaddress
NodeId=4#(additionalmysqldconnectionscanbe
#specifiedforthisnodeforvarious
#purposessuchasrunningndb_restore)
[mysqld]
hostname=192.168.0.184#HostnameorIPaddress
NodeId=5#(additionalmysqldconnectionscanbe
#specifiedforthisnodeforvarious
#purposessuchasrunningndb_restore)
配置说明:
[ndbddefault]这部分是公共部分,对于每一个数据节点都有效,只需要配置一份
NoOfReplicas=1数据镜像几份(各数据节点之间相互备份)
[tcpdefault]针对每个数据节点及管理节点之间使用哪个端口进行通讯,
在旧版本的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)
--查看启动后的集群状态,看看集群是否成功启动,如果看到以下内容,表示集群已经成功配置并启动
[root@mastermysql-cluster]#ndb_mgm
--NDBCluster--ManagementClient--
ndb_mgm>show
ConnectedtoManagementServerat:
localhost:
1186
ClusterConfiguration
---------------------
[ndbd(NDB)]2node(s)
id=2(notconnected,acceptingconnectfrom192.168.0.183)
id=3(notconnected,acceptingconnectfrom192.168.0.184)
[ndb_mgmd(MGM)]1node(s)
id=1@192.168.0.182(mysql-5.6.29ndb-7.4.11)
[mysqld(API)]2node(s)
id=4(notconnected,acceptingconnectfrom192.168.0.183)
id=5(notconnected,acceptingconnectfrom192.168.0.184)
现在看到集群中包含两个数据节点、一个管理节点、两个SQL节点,但是数据节点和SQL节点都还没有启动,所以显示的连接状态是notconnected。
2.2.4启动数据节点
分别登陆两台数据节点执行以下命令启动数据节点
#ndbd--initial(第一次启动时,需要加--initial来初始化数据节点,第二次启动时,就不需要这个参数了)
[root@master~]#ndbd--initial
2016-05-0517:
13:
34[ndbd]INFO--Angelconnectedto'192.168.0.182:
1186'
2016-05-0517:
13:
34[ndbd]INFO--Angelallocatednodeid:
3
现在可以看到,两个数据节点已经连接上来了,表示两个数据节点成功启动了
ndb_mgm>show
ClusterConfiguration
---------------------
[ndbd(NDB)]2node(s)
id=2@192.168.0.183(mysql-5.6.29ndb-7.4.11,Nodegroup:
0,*)
id=3@192.168.0.184(mysql-5.6.29ndb-7.4.11,Nodegroup:
1)
[ndb_mgmd(MGM)]1node(s)
id=1@192.168.0.182(mysql-5.6.29ndb-7.4.11)
[mysqld(API)]2node(s)
id=4(notconnected,acceptingconnectfrom192.168.0.183)
id=5(notconnected,acceptingconnectfrom192.168.0.184)
2.2.5启动SQL节点
cd/usr/local/mysql/bin
./mysqld_safe--user=mysql
16050517:
17:
53mysqld_safeLoggingto'/u01/app/mysql/data/master.err'.
16050517:
17:
53mysqld_safeStartingmysqlddaemonwithdatabasesfrom/u01/app/mysql/data
再次回到管理节点查看整个集群的状态
ndb_mgm>show
ClusterConfiguration
---------------------
[ndbd(NDB)]2node(s)
id=2@192.168.0.183(mysql-5.6.29ndb-7.4.11,Nodegroup:
0,*)
id=3@192.168.0.184(mysql-5.6.29ndb-7.4.11,Nodegroup:
1)
[ndb_mgmd(MGM)]1node(s)
id=1@192.168.0.182(mysql-5.6.29ndb-7.4.11)
[mysqld(API)]2node(s)
id=4@192.168.0.183(mysql-5.6.29ndb-7.4.11)
id=5@192.168.0.184(mysql-5.6.29ndb-7.4.11)
到此整个集群就搭建完成,并成功启动运行了
2.3安全关闭整个集群
2.3.1首先登陆到两个SQL节点,执行servicemysqldstop命令关闭SQL节点
loginas:
root
root@192.168.0.182'spassword:
Lastlogin:
ThuMay517:
13:
262016from192.168.0.180
[root@master~]#sshnode02
Lastlogin:
ThuMay517:
12:
392016fromnode01
[root@master~]#
[root@master~]#servicemysqldstop
ShuttingdownMySQL.....SUCCESS!
[root@master~]#exit
登出
Connectiontonode02closed.
[root@master~]#sshnode03
Lastlogin:
ThuMay517:
13:
292016fromnode01
[root@master~]#servicemysqldstop
ShuttingdownMySQL....SUCCESS!
[root@master~]#
2.3.2然后登陆到管理节点上,执行shutdown命令关闭整个集群
[root@mysql01mysql-cluster]#ndb_mgm
--NDBCluster--ManagementClient--
ndb_mgm>show
ClusterConfiguration
---------------------
[ndbd(NDB)]2node(s)
id=2@192.168.0.183(mysql-5.6.29ndb-7.4.11,Nodegroup:
0,*)
id=3@192.168.0.184(mysql-5.6.29ndb-7.4.11,Nodegroup:
1)
[ndb_mgmd(MGM)]1node(s)
id=1@192.168.0.182(mysql-5.6.29ndb-7.4.11)
[mysqld(API)]2node(s)
id=4(notconnected,acceptingconnectfrom192.168.0.183)
id=5(notconnected,acceptingconnectfrom192.168.0.184)
ndb_mgm>shutdown
Node2:
Clustershutdowninitiated
Node3:
Clustershutdowninitiated
Node3:
Nodeshutdowncompleted.
Node2:
Nodeshutdowncompleted.
3NDBClusternode(s)haveshutdown.
Disconnectingtoallowmanagementservertoshutdown.
2.4启动整个集群
(1)ndb_mgmd-f/var/lib/mysql-cluster/config.ini(管理节点执行)
(2)ndb_mgm(管理节点执行)
ndb_mgm>show
ConnectedtoManagementServerat:
localhost:
1186
ClusterConfiguration
---------------------
[ndbd(NDB)]2node(s)
id=2(notconnected,acceptingconnectfrom