2、搭建NFS服务器
建立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 创建MySQL账户
# groupadd -g 3306 mysql
# useradd -u 3306 -g mysql -s /sbin/nologin -M mysql
# mkdir /mydata/data
# chown -R mysql.mysql /mydata/data 配置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服务(各个节点)
解压包并修改目录权限
# 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 ./* 挂载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/ 修改配置文件
# cp support-files/my-large.cnf /etc/my.cnf
# vim /etc/my.cnf
[mysqld]
datadir = /mydata/data
innodb_file_per_table = 1 添加启动脚本(关闭自启动)
# 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
8、使用mysql客户端测试
主节点上配置远程访问的mysql账号
# /usr/local/mysql/bin/mysql
mysql> grant all on *.* to root@'%' identified by 'redhat';
mysql> flush privileges; 客户端登陆测试
# 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)); 将主节点standby而后客户端登陆测试
# mysql -uroot -h192.168.1.20 -p
mysql> show tables;
mysql> desc test;