nfs mysql_mysql高可用解决方案之---nfs

1 背景

sql1  主        sql2 备

nfs

依赖于nfs,nfs挂则都挂了

heartbeat + nfs 实现mysql的高可用性

2 实验

web1(mysql主) 192.168.204.5

web2(mysql备) 192.168.204.6

nfs 192.168.204.7

VIP  192.168.204.8

3fccd461911a048bad4237de376f6501.png

步骤

如上篇一样利用heartbeta 构建好 高可用的环境,这里不做介绍

安装mysql  方法及配置nfs

1 nfs上面

[root@nfs .ssh]# yum install -y  nfs-utils  安装nfs

[root@nfs .ssh]# id mysql

uid=500(mysql) gid=500 组=500   确保三者的mysql 用户和组一致,不一致请修改至一致

[root@nfs .ssh]# mkdir -p /data/nfs/mysql  创建mysql的共享目录

[root@nfs .ssh]# chown -R mysql:mysql /data/nfs/mysql/   设置属性

[root@nfs .ssh]# echo "/data/nfs/mysql 192.168.204.5(rw,no_root_squash) 192.168.204.6(rw,no_root_squash)" >> /etc/exports

导出共享给 ..注意权限一定是可读写且no_root_squash

[root@nfs .ssh]# /etc/init.d/nfs start  启动nfs

[root@nfs .ssh]# showmount -e 192.168.204.7   查看是否导出正确

2 mysql(主)的配置

挂载nfs

[root@web1 local]# id mysql

uid=500(mysql) gid=500(mysql) 组=500(mysql)

[root@web1 local]# mkdir -pv /data/mysql

[root@web1 local]# chown -R mysql.mysql /data/mysql/

[root@web1 local]# mount -t nfs 192.168.204.7:/data/nfs/mysql /data/mysql

准备好 二进制编译的 mysql包

mysql-5.6.21-linux-glibc2.5-x86_64.tar.gz

解压并初始化

cd /usr/local/src

tar xvf mysql-5.6.21-linux-glibc2.5-x86_64.tar.gz

cd ..

ln -s src/mysql-5.6.21-linux-glibc2.5-x86_64 mysql

[root@web1 local]# chown -R mysql.root mysql/

cd mysql

[root@web1 mysql]# ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql

复制启动文件和 配置文件

[root@web1 mysql]# cp  support-files/mysql.server /etc/init.d/mysql

[root@web1 mysql]# cp support-files/my-default.cnf /etc/my.cnf

修改启动文件/etc/init.d/mysqld

basedir=/usr/local/mysql    程序放置路径

datadir=/data/mysql   数据文件放置的路径

启动mysql

[root@web1 mysql]# /etc/init.d/mysqld start

mysql 登入

/usr/local/mysql/bin/mysql

mysql> create database testdb;

测试是否能成功

3 msyql 备 操作 与主的区别在于 此处不需要在初始化了,利用主初始化好的,进行运行mysql

挂载nfs

[root@web2 local]# id mysql

uid=500(mysql) gid=500(mysql) 组=500(mysql)

[root@web2 local]# mkdir -pv /data/mysql

[root@web2 local]# chown -R mysql.mysql /data/mysql/

[root@web2 local]# mount -t nfs 192.168.204.7:/data/nfs/mysql /data/mysql

准备好 二进制编译的 mysql包

mysql-5.6.21-linux-glibc2.5-x86_64.tar.gz

解压

cd /usr/local/src

tar xvf mysql-5.6.21-linux-glibc2.5-x86_64.tar.gz

cd ..

ln -s src/mysql-5.6.21-linux-glibc2.5-x86_64 mysql

[root@web2 mysql]# cp  support-files/mysql.server /etc/init.d/mysql

[root@web2 mysql]# cp support-files/my-default.cnf /etc/my.cnf

修改启动文件/etc/init.d/mysqld

basedir=/usr/local/mysql    程序放置路径

datadir=/data/mysql   数据文件放置的路径

启动mysql

[root@web2 mysql]# /etc/init.d/mysqld start (启动前 关闭  主mysql上的mysqld 因为只能同时存在一个)

mysql 登入

/usr/local/mysql/bin/mysql

mysql> create database testdb2;

测试是否能成功

4 测试高可用

heartbeat.x86_64

修改 ha.cf haresources

修改 ha.cf  重要的两条

node web1

node web2

修改 haresources

web1    192.168.204.8/24/eth0 mysqld

[root@web1 ha.d]# scp ha.cf haresources authkeys web2:/etc/ha.d/

启动heartbeat,前者一定不能手动启动mysqld

[root@web1 ha.d]# /etc/init.d/heartbeat status

[root@web1 ha.d]# ssh web2 '/etc/init.d/heartbeat start'

测试

[root@web1 ha.d]# ip addr show eth0

2: eth0: mtu 1500 qdisc pfifo_fast state UP qlen 1000

link/ether 00:0c:29:db:d8:64 brd ff:ff:ff:ff:ff:ff

inet 192.168.204.5/24 brd 192.168.204.255 scope global eth0

inet 192.168.204.8/24 brd 192.168.204.255 scope global secondary eth0

[root@web1 ha.d]# /etc/init.d/mysqld status

MySQL running (4511)[确定]

测试转移

[root@web1 ha.d]# /usr/share/heartbeat/hb_standby

Going standby [all].

查看web2上mysql 是否启动

[root@web2 ha.d]# ip addr show eth0

2: eth0: mtu 1500 qdisc pfifo_fast state UP qlen 1000

link/ether 00:0c:29:45:16:6b brd ff:ff:ff:ff:ff:ff

inet 192.168.204.6/24 brd 192.168.204.255 scope global eth0

inet 192.168.204.8/24 brd 192.168.204.255 scope global secondary eth0

inet6 fe80::20c:29ff:fe45:166b/64 scope link

valid_lft forever preferred_lft forever

[root@web2 ha.d]# /etc/init.d/mysqld status

SUCCESS! MySQL running (3798)

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值