1、服务器功能划分
管理节点:
193.168.120.60
数据节点
193.168.120.71
193.168.120.72
SQL节点
193.168.120.69
193.·168.120.91
2、安装
MYSQL软件:mysql-cluster-gpl-7.3.5-linux-glibc2.5-x86_64.tar.gz,先放在共享目录,各台机器分别挂载好,位于/shared/soft/
挂载方法/etc/fstab增加最后一行
//193.168.120.3/e$ /shared cifs username=hostname\administrator,password=********,rw 0 0
mount -a
各台机器最好先删掉原来的MYSQL,执行脚本del.sh:
[root@centos64 ~]# sh /shell/del.sh
#!/bin/bash
a=`rpm -qa|grep mysql*`
for a1 in ${a[@]}
do
rpm -e --nodeps $a1
done
管理节点及数据节点执行:
root@racnode2 ~]#sh /shell/clu1.sh
#!/bin/bash
egrep "^mysql" /etc/group >& /dev/null
if [ $? -ne 0 ]
then
groupadd mysql
fi
#create user if not exists
egrep "^mysql" /etc/passwd >& /dev/null
if [ $? -ne 0 ]
then
useradd mysql -g mysql
fi
if [ ! -d /usr/local/mysql ];then
mkdir /usr/local/mysql
else
mv /usr/local/mysql /usr/local/mysqlold
mkdir /usr/local/mysql
fi
cd /usr/local/
cp /shared/soft/mysql-cluster-gpl-7.3.5-linux-glibc2.5-x86_64.tar.gz /tmp/
tar -zxvf /tmp/mysql-cluster-gpl-7.3.5-linux-glibc2.5-x86_64.tar.gz -C /usr/local/mysql
mv /usr/local/mysql/mysql-cluster-gpl-7.3.5-linux-glibc2.5-x86_64/* /usr/local/mysql/
rm -rf /usr/local/mysql/mysql-cluster-gpl-7.3.5-linux-glibc2.5-x86_64
chown -R mysql:mysql mysql/
cd mysql
scripts/mysql_install_db --user=mysql
SQL节点执行:
[root@centos64 mysql]# sh /shell/clu1.sh
#!/bin/bash
egrep "^mysql" /etc/group >& /dev/null
if [ $? -ne 0 ]
then
groupadd mysql
fi
#create user if not exists
egrep "^mysql" /etc/passwd >& /dev/null
if [ $? -ne 0 ]
then
useradd mysql -g mysql
fi
if [ ! -d /usr/local/mysql ];then
mkdir /usr/local/mysql
else
mv /usr/local/mysql /usr/local/mysqlold
mkdir /usr/local/mysql
fi
cd /usr/local/
cp /shared/soft/mysql-cluster-gpl-7.3.5-linux-glibc2.5-x86_64.tar.gz /tmp/
tar -zxvf /tmp/mysql-cluster-gpl-7.3.5-linux-glibc2.5-x86_64.tar.gz -C /usr/local/mysql
mv /usr/local/mysql/mysql-cluster-gpl-7.3.5-linux-glibc2.5-x86_64/* /usr/local/mysql/
rm -rf /usr/local/mysql/mysql-cluster-gpl-7.3.5-linux-glibc2.5-x86_64
chown -R mysql:mysql mysql/
3、配置
管理节点
[root@MSLINUX ~]# sh /shell/mkdir.sh
#!/bin/bash
dirarr=(/var/lib/mysql-cluster /var/mysql /var/mysql/data /var/mysql/log)
for arr1 in ${dirarr[@]}
do
if [ ! -d $arr1 ];then
mkdir -p $arr1
else
bak=$arr1"old"
mv $arr1 $bak
mkdir -p $arr1
fi
done
编辑配置文件:
/var/lib/mysql-cluster/config.ini
[root@MSLINUX ~]# cat /var/lib/mysql-cluster/config.ini
[NDBD DEFAULT]
NoOfReplicas=2
#[TCP DEFAULT]
#PortNumber=1186
[NDB_MGMD]
nodeid=1
HostName=193.168.120.60
DataDir=/var/mysql/data
[NDBD]
nodeid=2
HostName=193.168.120.71
DataDir=/var/mysql/data
[NDBD]
nodeid=3
HostName=193.168.120.72
DataDir=/var/mysql/data
[MYSQLD]
nodeid=4
HostName=193.168.120.69
[MYSQLD]
nodeid=5
HostName=193.168.120.91
[MYSQLD]
nodeid=6
[mysqld]
nodeid=7
#留有空的mysqld节点
拷贝文件:
[root@MSLINUX ~]# sh /shell/cp.sh
#!/bin/bash
cd /usr/local/mysql/bin
cp ./ndb_mgm /usr/local/bin/
cp ./ndb_mgmd /usr/local/bin/
cp /var/lib/mysql-cluster/config.ini /usr/local/bin/
数据节点:
[root@racnode2 shell]# sh mkdir.sh
#!/bin/bash
dirarr=(/var/mysql /var/mysql/data /var/mysql/log)
for arr1 in ${dirarr[@]}
do
if [ ! -d $arr1 ];then
mkdir -p $arr1
else
bak=$arr1"old"
mv $arr1 $bak
mkdir -p $arr1
fi
done
/etc/my.cnf如下:
[root@racnode2 shell]# cat /etc/my.cnf
[mysqld]
datadir=/var/mysql/data
socket=/var/mysql/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
ndbcluster
ndb-connectstring=193.168.120.60
[MYSQL_CLUSTER]
ndb-connectstring=193.168.120.60
[NDB_MGM]
connect-string=193.168.120.60
[mysqld_safe]
log-error=/var/mysql/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
SQL节点
[root@centos64 mysql]# cat /shell/cp.sh
#!/bin/bash
cd /usr/local/mysql/
cp -r support-files/mysql.server /etc/rc.d/init.d/mysqld
chmod +x /etc/rc.d/init.d/mysqld
chkconfig mysqld on
dirarr=(/var/mysql /var/mysql/data /var/mysql/log)
for arr1 in ${dirarr[@]}
do
if [ ! -d $arr1 ];then
mkdir -p $arr1
else
bak=$arr1"old"
mv $arr1 $bak
mkdir -p $arr1
fi
done
chown -R mysql:mysql /var/mysql
ln -sf /usr/local/mysql/bin/mysql /usr/bin
ln -sf /var/mysql/mysql.sock /tmp/mysql.sock
/etc/my.cnf如下:[root@centos64 mysql]# cat /etc/my.cnf
[mysqld]
datadir=/var/mysql/data
socket=/var/mysql/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
log-bin = /var/mysql/log/mysql-bin.log
max_connections=1000
binlog-ignore-db=mysql
auto-increment-increment=2
auto-increment-offset=1
ndbcluster
ndb-connectstring=193.168.120.60
[MYSQL_CLUSTER]
ndb-connectstring=193.168.120.60
[NDB_MGM]
connect-string=193.168.120.60
[mysqld_safe]
log-error=/var/mysql/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
初如化数据库
/usr/local/mysql/scripts/mysql_install_db --user=mysql -datadir=/var/mysql/data
4、启动
管理节点
ndb_mgmd -f /var/lib/mysql-cluster/config.ini –initial 第一次启动或修改以后加 –initial
数据节点
/usr/local/mysql/bin/ndbd –initial 第一次启动或修改以后加 –initial
SQL节点
service mysqld start
5、验证
在管理节点上
ndb_mgm
ndb_mgm> show
Cluster Configuration
---------------------
[ndbd(NDB)] 2 node(s)
id=2 @193.168.120.71 (mysql-5.6.17 ndb-7.3.5, Nodegroup: 0, *)
id=3 @193.168.120.72 (mysql-5.6.17 ndb-7.3.5, Nodegroup: 0)
[ndb_mgmd(MGM)] 1 node(s)
id=1 @193.168.120.60 (mysql-5.6.17 ndb-7.3.5)
[mysqld(API)] 4 node(s)
id=4 @193.168.120.69 (mysql-5.6.17 ndb-7.3.5)
id=5 @193.168.120.91 (mysql-5.6.17 ndb-7.3.5)
id=6 (not connected, accepting connect from any host)
id=7 (not connected, accepting connect from any host)
分别登陆SQL节点,修改数据,两边能够正常同步,说明群集正常工作
注意,MYSQL CLUSTER 数所库引擎使用NDB