mysql+heartbeat+nfs共享存储
第一步:完成基础环境的搭建
第二步:nfs服务配置
Yum install nfs-utils rpcbind (centos 6需要注意安装)
由于nfs服务不识别主机名,只识别ID号,所以必须先建立用户,ID号要和mysql服务器上的mysql用户(后面创建)的ID号保持一致,这里设定ID号都为306。
[root@lnfs ~]# groupadd-g 306 -r mysql
[root@nfs ~]# useradd-g mysql -r -u 306 -s /sbin/nologin mysql
[root@nfs ~]# chown -Rmysql:mysql /sqldata/ #设置共享目录的权限
[root@nfs ~]#vi/etc/exports
/sqldata192.168.0.*/24(rw,no_root_squash)
让nfs服务开机自动启动:
[root@nfs ~]# chkconfignfs on
[root@nfs ~]/etc/init.d/rpcbind start
[root@nfs ~]/etc/init.d/nfsstart
第三步:测试mysql1和mysql2是否能够挂载
1、保障本地挂载的目录的权限和nfs的目录权限一致
2、建立用户和本地挂载目录
[root@mysql1 ~]# groupadd -g 306 -r mysql
[root@mysql1 ~]# useradd -g mysql -u 306 -r mysql
[root@mysql1 ~]# mkdir /data
3.客户端同样安装 yum install -ynfs-utils rpcbind
4、启动rpcbind,通过showmount -e192.168.0.30查看挂载情况
[root@mysql1 ~]/etc/init.d/rpcbind start
[root@mysql1~]# showmount -e 192.168.0.30
Export listfor 192.168.0.30:
/mysqldata192.168.0.0/24
5、挂载nfs信息
Mount -t nfs192.168.0.30:/mysqldata/ /data/ #挂载目录
[root@mysql1 ~]#df -h
Filesystem Size Used Avail Use% Mounted on
192.168.0.30:/mysqldata/
20G 173M 19G 1% /data
Mysql2与mysql1的配置一致
第四步:配置安装mysql
1. 安装mysql
cd /usr/local/src/
wget http://syslab.comsenz.com/downlo... -icc-glibc23.tar.gz
tar zxvf /usr/local/src/mysql-5.1.40-linux-i686-icc-glibc23.tar.gz
mv mysql-5.1.40-linux-i686-icc-glibc23 /usr/local/mysql
useradd -s /sbin/nologin mysql
cd /usr/local/mysql
mkdir -p /data/mysql
chown -R mysql:mysql /data/mysql #该用户已经建立,ID号为306
./scripts/mysql_install_db --user=mysql --datadir=/data/mysql --basedir=/usr/local/mysql
cp support-files/my-large.cnf /etc/my.cnf
cp support-files/mysql.server /etc/init.d/mysqld
chmod 755 /etc/init.d/mysqld
vim /etc/init.d/mysqld #修改datadir
chkconfig --add mysqld
chkconfig mysqld on
service mysqld start
步骤:1、建立mysql 用户 ;2、建立mysql存储目录;3、初始化数据库;4、COPY配置文件;5、copy启动文件;
在/etc/profile下,添加mysql的PATH,如下所示
PATH=$PATH:/usr/local/mysql/bin
执行,source/etc/profile #让PATH立即生效
由于用户创建的数据都是存放在NFSServer上,所以在一台mysql服务器上创建的文件在另一台服务器上也应改能够看到,以实现数据同步,这里验证一下。
在节点mysql1上打开mysql服务并创建数据库,查看在节点mysql1上是否能够看到:
在节点mysql1上创建数据库db1:
此时在mysql2上查看是存在db1
第六步:安装配置heartbeat,安装过程参看博文中关于heartbeat部分
第七步:启动heartbeat
首先在mysql1和mysql2上关闭mysqld服务
然后,安装先主后从的顺序启动heartbeat(/etc/init.d/mysql start),接下来,如下所示可以发现mysql1(主)已经启动了mysqld服务,而mysql2上的mysqld则没有启动
第八步:通过远程的方式连接mysqld数据库,既连接192.168.1.200(虚拟IP地址)
1、授权192.168.1.200允许被访问
2、在mysql1上,连接mysql数据库
mysql -h 192.168.1.200 -uroot
3、主上停止heartbeat服务
service heartbeat stop
同理mysql2会接替mysql1的工作
4、在mysql2上,再次连接mysqld,同样连接成功,且数据一致
mysql -h 192.168.1.200 -uroot
原文地址:http://469952080.blog.51cto.com/8311493/1687488