1、實驗環境
HA1:192.168.1.17(RHEL5.8_32bit,web server)
HA2:192.168.1.18(RHEL5.8_32bit,web server)
NFS:192.168.1.19(RHEL5.8_32bit,nfs server)
VIP:192.168.1.20
2、搭建NFS服務器
<1> 建立LVM邏輯卷
# fdisk /dev/sda n --> e --> n --> +8G --> t --> 5 --> 8e --> w # partprobe /dev/sda # pvcreate /dev/sda5 # vgcreate myvg /dev/sda5 # lvcreate -L 5G -n mydata myvg # lvs # mke2fs -j /dev/myvg/mydata # mkdir /mydata # vim /etc/fstab /dev/myvg/mydata /mydata ext3 defaults 0 0 # mount -a
<2> 創建MySQL賬戶
# groupadd -g 3306 mysql # useradd -u 3306 -g mysql -s /sbin/nologin -M mysql # mkdir /mydata/data # chown -R mysql.mysql /mydata/data
<3> 配置NFS服務
# vim /etc/exports /mydata 192.168.1.17(no_root_squash,rw) 192.168.1.18(no_root_squash,rw) # exportfs -arv
3、創建MySQL賬戶(各個節點)
各個節點和NFS上存在mysql賬號且id號必須保持一致
# groupadd -g 3306 mysql # useradd -u 3306 -g 3306 -s /sbin/nologin -M mysql # mkdir /mydata
4、掛載NFS目錄並測試是否可寫(各個節點)
# mount 192.168.1.19:/mydata /mydata # ll /mydata # usermod -s /bin/bash mysql # su - mysql $ cd /mydata/data $ touch a $ ls $ rm a $ exit # usermod -s /sbin/nologin mysql # umount /mydata
5、通用二進制安裝並配置MySQL服務(各個節點)
<1> 解壓包並修改目錄權限
# tar xf mysql-5.5.28-linux2.6-i686.tar.gz -C /usr/local # cd /usr/local # ln -sv mysql-5.5.28-linux2.6-i686 mysql # cd mysql # chown -R root:mysql ./*
<2> 掛載NFS目錄並初始化MySQL
MySQL初始化時使用root賬號執行,NFS服務需配置no_root_squash,但是安全性缺乏保證,因此儘量配置指定各個節點地址共享
HA1:(其他節點上無需做初始化MySQL,即此步驟省略)
# mount 192.168.1.19:/mydata /mydata # scripts/mysql_install_db --user=mysql --datadir=/mydata/data/ # ll /mydata/data/
<3> 修改配置文件
# cp support-files/my-large.cnf /etc/my.cnf # vim /etc/my.cnf [mysqld] datadir = /mydata/data innodb_file_per_table = 1
<4> 添加啓動腳本(關閉自啓動)
# cp support-files/mysql.server /etc/init.d/mysqld # chkconfig --add mysqld # chkconfig mysqld off
6、掛載NFS目錄並測試MySQL服務是否正常(各個節點)
# mount 192.168.1.19:/mydata /mydata # service mysqld start # /usr/local/mysql/bin/mysql mysql> create database mydb; mysql> show databases; mysql> show global variables like '%innodb%'; # service mysqld stop # umount /mydata
7、啓動Heartbeat v2服務並使用crm配置資源
HA1:
# service heartbeat start # ssh node2 'service heartbeat start' # crm_mon(查看哪個主節點) # hb_gui &
crm配置資源組:(資源啓動順序:vip, mysqlstore, mysqld)
8、使用mysql客戶端測試
<1> 主節點上配置遠程訪問的mysql賬號
# /usr/local/mysql/bin/mysql mysql> grant all on *.* to root@'%' identified by 'redhat'; mysql> flush privileges;
<2> 客戶端登陸測試
# mysql -uroot -h192.168.1.20 -p mysql> show databases; mysql> use mydb; mysql> create table test (id int unsigned not null auto_increment primary key,name char(20));
<3> 將主節點standby而後客戶端登陸測試
# mysql -uroot -h192.168.1.20 -p mysql> show tables; mysql> desc test;