为了测试方便,所有机子清空或关闭防火墙
test1:192.168.10.161,提供NFS服务(CentOS 6.8),主机名:test1
test2:192.168.10.162,提供http服务(CentOS 6.9),主机名:test2
test3:192.168.10.163,提供http服务(CentOS 6.9),主机名:test3
vip:192.168.10.20
设置test1、test2、test3能基于主机名通信,在/etc/hosts中添加:
192.168.10.161 test1
192.168.10.162 test2
192.168.10.163 test3
test1、test2、test3之间root用户基于密钥认证设置过程、时间同步设置过程略。
注意:定义成为集群服务中的资源不能开机启动。
一、test1节点设置
1、test1创建一个分区用于存储数据库
[root@test1 ~]# fdisk /dev/sdb

创建LVM逻辑卷
[root@test1 ~]# pvcreate /dev/sdb3
Physical volume "/dev/sdb3" successfully created
[root@test1 ~]# vgcreate myvg /dev/sdb3
Volume group "myvg" successfully created
[root@test1 ~]# lvcreate -L 2G -n mydata myvg
Logical volume "mydata" created.
[root@test1 ~]# mkfs.ext4 /dev/myvg/mydata
挂载到/mydb目录:
[root@test1 ~]# mkdir /mydb
[root@test1 ~]# vim /etc/fstab
/dev/myvg/mydata /mydb ext4 defaults 0 0
[root@test1 ~]# mount -a
2、安装配置nfs:
#yum install nfs-utils -y
编辑/etc/exports 文件
# [root@test1 ~]# vim /etc/exports
/mydb *(rw,no_root_squash)
3、创建mysql用户和组,用户、组id为306
[root@test1 ~]# groupadd -r -g 306 mysql
[root@test1 ~]# useradd -r -g 306 -u 306 mysql
设置/mydb用户和组为mysql
[root@test1 ~]# chown -R mysql.mysql /mydb/
[root@test1 ~]# exportfs -arv
4、启动nfs
service nfs start
二、mariadb数据库安装
1、test2、test3创建/mydb目录
[root@test2 ~]# mkdir /mydb;ssh test3 ' mkdir /mydb'
2、创建mysql用户和组,id为306
[root@test2 ~]# groupadd -r -g 306 mysql;ssh test3 'groupadd -r -g 306 mysql'
[root@test2 ~]# useradd -r -g 306 -u 306 mysql;ssh test3 'useradd -r -g 306 -u 306 mysql'
3、将test1的nfs共享挂载到/mydb
[root@test2 ~]# mount -t nfs 192.168.10.161:/mydb /mydb
[root@test2 ~]# mount
4、mariadb数据库安装
4.1、到官网下载mariadb数据库
4.2、解压、安装
[root@test2 ~]# tar xf mariadb-5.5.57-linux-x86_64.tar.gz -C /usr/local/
[root@test2 ~]# cd /usr/local/
[root@test2 local]# ln -sv mariadb-5.5.57-linux-x86_64/ mysql
`mysql' -> `mariadb-5.5.57-linux-x86_64/'

4.3修改属主属组
[root@test2 local]# cd mysql/
[root@test2 mysql]# chown -R root.mysql ./*

4.4、安装数据库
[root@test2 mysql]# ./scripts/mysql_install_db –datadir=/mydb/data –user=mysql
4.5、配置数据库配置文件
[root@test2 mysql]# mkdir /etc/mysql
[root@test2 mysql]# cp support-files/my-large.cnf /etc/mysql/my.cnf
[root@test2 mysql]# vim /etc/mysql/my.cnf
datadir = /mydb/data
innodb_file_per = on
skip_name_resolve = on

4.6、配置服务脚本
[root@test2 mysql]# cp support-files/mysql.server /etc/rc.d/init.d/mysqld
4.7、新建一个空白文档记录数据库日志
[root@test2 mysql]# touch /var/log/mysqld.log
[root@test2 mysql]# chown mysql.mysql /var/log/mysqld.log
4.8、服务配置
[root@test2 mysql]# chkconfig –add mysqld
不能设置开机启动
[root@test2 mysql]# chkconfig mysqld off
安装完之后卸载nfs共享目录
#umount /mydb
test3安装mariadb:
[root@test3 ~]# tar xf mariadb-5.5.57-linux-x86_64.tar.gz -C /usr/local/
[root@test3 ~]# cd /usr/local/
[root@test3 local]# ln -sv mariadb-5.5.57-linux-x86_64/ mysql
`mysql' -> `mariadb-5.5.57-linux-x86_64/'
[root@test3 local]# cd mysql/
[root@test3 mysql]# chown -R root.mysql ./*
[root@test3 mysql]# mkdir /etc/mysql
将test2的数据库配置文件复制过来
[root@test2 mysql]# scp /etc/mysql/my.cnf test3:/etc/mysql
服务脚本:
[root@test3 mysql]# cp support-files/mysql.server /etc/rc.d/init.d/mysqld
[root@test3 mysql]# chkconfig –add mysqld
[root@test3 mysql]# chkconfig mysqld off
[root@test3 mysql]# touch /var/log/mysqld.log
[root@test3 mysql]# chown mysql.mysql /var/log/mysqld.log
三、test2、test3设置SELinux
# setsebool -P httpd_use_nfs 1
四、test1安装mysql工具
yum install mysql -y
五、heartbeat V2版的安装
test2、test3节点安装heartbeat V2版本
下载地址:https://pan.baidu.com/s/1i5QYj8T
1、安装依赖包
# yum install net-snmp-libs libnet PyXML perl-TimeDate libltdl* pygtk2-libglade* -y
#yum groupinstall "Debugging Tools" "Server Platform Development" -y
2、test2、test3节点安装
heartbeat-2.1.4-12.el6.x86_64.rpm heartbeat-pils-2.1.4-12.el6.x86_64.rpm
heartbeat-devel-2.1.4-12.el6.x86_64.rpm heartbeat-stonith-2.1.4-12.el6.x86_64.rpm
heartbeat-gui-2.1.4-12.el6.x86_64.rpm
3、在test2节点上配置heartbeat
1)复制/usr/share/doc/heartbeat-2.1.4/目录下相关配置文件到/etc/ha.d目录下
[root@test2 ha.d]# cp /usr/share/doc/heartbeat-2.1.4/{authkeys,ha.cf,haresources} /etc/ha.d/
2)配置ha.cf,vim /etc/ha.cf
启动日志:logfile /var/log/ha-log
设置多播:mcast eth0 225.10.0.1 694 1 0
定义节点:
node test2
node test3
启用crm:
crm on
运行crm_mon命令:

显示没有配置资源。
3)配置authkeys
生成一个随机字符串作为认证密钥:
[root@test3 ha.d]# openssl rand -base64 8
i80T7YUjfe4=
[root@test2 ha.d]# vim authkeys
auth 2
2 sha1 i80T7YUjfe4=
authkeys文件权限为600, [root@test2 ha.d]# chmod 600 authkeys
4)将authkeys 、ha.cf s配置文件发给test3
scp -p authkeys ha.cf test3:/etc/ha.d/
5)启动heartbeat服务:
[root@test2 ha.d]# service heartbeat start;ssh test3 'service heartbeat start'
6)资源配置工具hb_gui (前面已经安装heartbeat-gui包)
·设置hacluster用户密码
[root@test2 ~]# echo 123456 | passwd –stdin hacluster
Changing password for user hacluster.
passwd: all authentication tokens updated successfully.
·运行hb_gui
[root@test2 ~]# hb_gui &
可以在物理机显示图形界面(Xshell远程连接linux并且物理机已经安装xmanager)
Xshell设置:

点击Connection选择LogIn:


输入hacluster用户的密码:

登录成功:

资源配置:定义一个资源组,名为:myservices
先添加ip,再添加文件系统,最后添加mysql服务

在组资料“myservices”中添加ip:192.168.10.20:

ip:192.168.10.20
nic:eth0
在组资料“myservices”中添加文件系统:

在组资料“myservices”中添加mysqld服务:

添加完ip、文件系统、mysql服务如下图:

启动组资源:

资源运行在test3上
mysql数据库root用户授权,资源在test3节点上,所以
[root@test3 ~]# /usr/local/mysql/bin/mysql
MariaDB [(none)]> GRANT ALL ON *.* TO 'root'@'%' IDENTIFIED BY '123456';
MariaDB [(none)]> FLUSH PRIVILEGES;
在test1节点连接数据库:
[root@test1 ~]# mysql -uroot -p123456 -h 192.168.10.20

连接成功。。