mysql高可用keepalived_mysql高可用双主+keepalived-阿里云开发者社区

Mysql双主复制

实验拓扑:sql1  192.168.10.1   server id 1 vip 192.168.10.100

Sql2  192.168.10.2   server id 2 vip 192.168.10.100

客户端 192.168.10.3

Sql1配置双主

主库配置:vim /etc/my.cnf

Log-bin=mysql-bin    //打开二进制日志

Server-id=1

Service mysqld start   //重启mysql进程

登录到mysql控制台

Mysql> reset master;   //重置日志

Mysql>grant replication slave,replication client on *.*  torep1@’192.168.10.%’identified by‘tianyun’;  //为第二台服务器建立复制账号

Mysql> flush privileges;

Mysql>change master to master_host=’192.168.10.2’,  master_user=’rep1’, master_password=’tianyun’,  master_log_file=’mysql-bin.000001’,  master_log_pos=0;

//因为它也是从,所以也需要设置

Mysql>Start slave;  //先不要启动,执行这语句,等待会第二台服务器配置好之后再执行

Sql2配置

主库配置:vim /etc/my.cnf

Log-bin=mysql-bin    //打开二进制日志

Server-id=2

Service mysqld start   //重启mysql进程

登录到mysql控制台

Mysql> reset master;   //重置日志

Mysql>grant replication slave,replication client on *.*  torep1@’192.168.10.%’identified by‘tianyun’;  //为对方主机第一台服务器建立复制账号

Mysql> flush privileges;

Mysql>change master to master_host=’192.168.10.1’,  master_user=’rep1’, master_password=’tianyun’,  master_log_file=’mysql-bin.000001’,  master_log_pos=0;

//因为它也是从,所以也需要设置

Mysql>Start slave;  //先不要启动,执行这语句,等待会第二台服务器配置好之后再执行

测试:分别在两台服务器上创建建库建表往表里查一点数据,在对方服务器上看有没有库表数据就能测试出来了。

创建一个测试远程连接账号

Grant all on *.* to admin@’%’identified by‘tianyun’; //因为是主主架构,两边服务器数据肯定一致,所以只需要再一台服务器上创建账号就可以了。

Flush privileges;

在客户端电脑分别登录测试一下两台主机服务器,看看是否正常。

安装keepalived

在两台sql服务器上分别安装keepalived软件

Yum -y install kernel-headers kernel-devel  openssl-devel popt-devel  //解决依赖包

Tar xzf keepalived-1.2.8.tar.gz

Cd keepalived-1.2.8

./configure --prefix=/           //这样配置文件比较短一点,位置随便自定的

Make && make install

Keepalived主/备配置

Vim /etc/keepalived/keepalived.conf              //sql1上做为高可用的主服务器,当然也可以在sql2上做为主服务器,这里就让sql1做主服务器

备注:红色部分代码新增的,紫色部分代表修改的

Lobal_defs{               //用来设置通知发送给那个邮件的

Router_id mysqlA   //这个只是一个标识而已

Vrrp_script check_mysql{     //定义检测mysql正常语法的脚本

Script“/keeplived_mysql.sh”//脚本位置,这个是我们需要自己去手工写的脚本,位置名字必须和这里的一致

Interval  5   //定义间隔什么时候就去检测一次

}

Vrrp_instance VI_1{   //定义一个实例

State Master

Interface eth0   //通信心跳接口,最好就是直接用一个网卡互联,不经过任何路由器

Virtual_router_id 51  //两边一致

Priority 100  //优先级

Advert_int 1

Authentication{    //通信方式,两边一致最好

Auth_type PASS

Auth_pass tianyun

}

Virtual_ipaddreess {

192.168.10.100      //vip地址

}

Track_script {

Check_mysql    //最关键的一点,检查运行脚本

}

}

下面的东西我们不用管它

保存退出

Rsync -av /etc/keepalived/keeplived.conf 192.168.10.2:/etc/keepalived  //直接把配置文件拷贝到备也就是另一台服务器上,然后我们直接修改两个参数即可,就不用我们再怎么设置了

在sql2上配置

Vim /etc/keepalived/keepalived.conf

Lobal_defs{               //用来设置通知发送给那个邮件的

Router_id mysqlB  //这个只是一个标识而已

Vrrp_script check_mysql{     //定义检测mysql正常语法的脚本

Script“/keeplived_mysql.sh”//脚本位置,这个是我们需要自己去手工写的脚本,位置名字必须和这里的一致

Interval  5   //定义间隔什么时候就去检测一次,时间不要太短,合适就好了

}

Vrrp_instance VI_1{   //定义一个实例

State BACKUP  //这个不能随便写的,是关键字

Interface eth0   //通信心跳接口,最好就是直接用一个网卡互联,不经过任何路由器

Virtual_router_id 51  //两边一致

Priority  50  //优先级

Advert_int 1

Authentication{    //通信方式,两边一致最好

Auth_type PASS

Auth_pass tianyun

}

Virtual_ipaddreess {

192.168.10.100      //vip地址

}

Track_script {

Check_mysql    //最关键的一点,检查运行脚本

}

}

保存退出就行了

Mysql状态监测脚本

两边sql1和sql2配置一模一样

脚本的名字和路径必须要keepalived配置文件里定义的一模一样

Vim keeplived_mysql.sh

#!/bin/bash

/usr/local/mysql/bin/Mysql -e“show status”& >/dev/null   //如果不给全路径,keepalived调用的时候可能会报错

If [$? -ne 0];  //如果不等于0表示mysql不正常

Then

Service keepalived stop

Fi

保存退出

Chmod a+xkeeplived_mysql.sh //让脚本让其他用户有运行的权限

Chkconfig --add keepalived   //将keepalived加入到让service去管理启动它

Chkconfig   keepalived  on //开机运行keepalived

手工测试以调试模式去执行测试一下效果

Bash -vx /keepalived_msyql.sh

Mysql高可用测试

关闭一台sql逐个测试机就行了

本文转自    探花无情   51CTO博客,原文链接:http://blog.51cto.com/983865387/1876166

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值