Mysql主从高可用

Mysql主从高可用

服务器角色
192.168.1.10
192.168.1.20
keepalived----vip

环境准备

Keepalived-2.0.13.tar.gz
mysql-5.5.56-linux-glibc2.5-x86_64.tar.gz 

依赖安装

yum -y install kernel-devel openssl-devel popt-devel
yum install -y libaio
注:此部署中的高可用采用源码部署

部署(主从服务器同步部署操作)

用户是否创建
  创建用户
  groupadd mysql
  useradd -r -g mysql mysql
1、解压安装
     tar -zxf mysql-5.5.56-linux-glibc2.5-x86_64.tar.gz
     mv mysql-5.5.56-linux-glibc2.5-x86_64/ mysql
     chown -R mysql:mysql mysql
     chmod 777 /root/
2、初始化数据库
     ./scripts/mysql_install_db --basedir=/root/mysql --datadir=/root/mysql/data/ --user=mysql
3、拷贝配置文件
     cp support-files/my-medium.cnf /etc/my.cnf
4、修改配置文件
     在port端口下添加一段参数
     log-error=/root/mysql/data/mysqld.error
5、拷贝启动程序
     cp support-files/mysql.server /etc/init.d/mysql
6、配置启动目录
     sed -i 's#/usr/local/mysql#/root/mysql#g' /etc/init.d/mysql
7、命令创建软连接
     ln -s /root/mysql/bin/* /usr/local/sbin
8、创建登录密码
    /etc/init.d/mysql start
    mysqladmin -u'root' password'123456'
9、如想修改密码,可登录数据库,修改密码
    set password=password("dataexa");
    grant all privileges on *.* to 'root'@'%' identified by 'dataexa';
    flush privileges;
10、创建新用户
    CREATE USER 'bigdata'@'%' IDENTIFIED BY '密码';
    grant all privileges on *.* to bigdata@'%' identified by '密码'
    flush privileges;

主从配置
1、主服务器my.cnf文件修改
例下图
在这里插入图片描述

1、从服务器my.cnf文件配置
例下图
在这里插入图片描述

2、重启主从节点的my.cnf文件

 /etc/init.d/mysql restart

3、从节点进入到数据库中指定主从关系

CHANGE MASTER TO MASTER_HOST='IP',MASTER_USER='主从复制账户',MASTER_PASSWORD='密码',MASTER_LOG_FILE='master-bin.000001',MASTER_LOG_POS=107;

4、从服务器指定之后开启主从复制

 Start slave;
 show slave status\G;

查看状态是否都为YES-例下图
在这里插入图片描述
高可用部署

1、解压编译 
   tar zxf Keepalived-2.0.13.tar.gz
   cd keepalived-2.0.13
   ./configure
   make && make install
2、拷贝相关启动文件和配置文件
    cp keepalived/etc/keepalived/keepalived.conf /etc/keepalived/  
    cp keepalived/etc/init.d/keepalived /etc/rc.d/init.d/keepalived 
    cp keepalived/etc/sysconfig/keepalived /etc/sysconfig/keepalived
    chkconfig --add keepalived
3、编辑conf文件
主服务配置:
vim /etc/keepalived/keepalived.conf
#! Configuration File for keepalived
global_defs {
router_id shbdp-net02-3     #------主机id
}
vrrp_instance VI_1 {
state BACKUP               
interface eth0             #-------网卡名称,可ip  addr查看
virtual_router_id 60
priority 100               #------主的比从大
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.1.22                   #--------注意修改为自己网段的vip
}
}

从服务器配置
vim /etc/keepalived/keepalived.conf
#! Configuration File for keepalived
global_defs {
router_id shbdp-net02-3
}
vrrp_instance VI_1 {
state BACKUP
interface eth0
virtual_router_id 60
priority 80
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.1.22
}
}

4、主从启动keepalived服务(先主后从的顺序)
   service keepalived start
5、ip addr 查看主服务是否产生自定义设置的虚拟ip
6、产生虚拟ip之后,我们测试一下service keepalived stop停掉主节点的keepalived服务,并ip addr 查看虚拟ip是否到从服务器上。
7、测试成功之后,我们还原状态
① 停掉从keepalived服务 service keepalived stop 
② 启动主服务器keepalived服务 service keepalived start
③ 主服务器查看虚拟ip回来了,再启动从keepalived服务 service keepalived start

8、添加检测mysql状态模块脚本
注:以下配置的ip以及端口根据实际情况进行更改
主服务器操作
Vim /etc/keepalived/keepalived.conf
virtual_server 192.168.1.22 3306 {     #虚拟IP+端口
delay_loop 6
lb_algo wrr
lb_kind DR
nat_mask 255.255.255.0
persistence_timeout 50
protocol TCP
real_server 192.168.1.10 3306 {     #-----本机IP+端口
weight 1
notify_down /opt/mysql.sh         #------脚本路径
TCP_CHECK {
connect_timeout 10
nb_get_retry 3
connect_port 3306                 #----端口
}
}
}

从服务器添加
vim /etc/keepalived/keepalived.conf
virtual_server 192.168.1.22 3306 {
delay_loop 6
lb_algo wrr
lb_kind DR
nat_mask 255.255.255.0
persistence_timeout 50
protocol TCP
real_server 192.168.1.20 3306 {
weight 1
notify_down /opt/mysql.sh
TCP_CHECK {
connect_timeout 10
nb_get_retry 3
connect_port 3306
}
}
}

主从服务器的opt下的脚本如下
cd /opt/
vim mysql.sh
#!/bin/bash
pkill keepalived

Chmod +x mysql.sh

9、主从keepalived重启(先主后从顺序)
   service keepalived restart
10、测试主mysql宕机之后的主从切换
① pkill mysql  杀掉主服务器的mysql 测试
② 杀掉之后 主服务器ip addr查看 生成的虚拟ip是否消失,可多ip addr 刷新几次
③ 主服务器的虚拟ip消失之后,进入到从服务器进行ip addr查看虚拟ip是否漂移到从从服务器,多ip addr刷新几次
④ 如没问题,至此测试成功
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

系统师小范

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值