MySQL+keepalived高可用

一、MySQL+keepalived高可用
centos6基础环境
MySQL互为主从
在A、B上操作:

# 安装:
[root@ localhost ~]# yum -y install mysql mysql-server
# 修改配置文件
[root@ localhost ~]# vim  /etc/my.cnf
# 添加二进制日志:
	log-bin=mysql-bin   			 		//开启二进制日志
	server-id=1 							//mysql的id,默认是1,唯一的,建议使用ip最后一段
	relay-log=mysql-relay              		//开启中继日志
# 重启mysql
[root@ localhost ~]# service mysqld restart
# 登录mysql,新建同步用户:
	mysql -uroot -p
	mysql> grant replication slave on *.* to 'tom'@'%' identified by '123456';
	mysql> flush privileges;
# 初始化bin-log日志
	mysql> reset master;
# 查看最新bin-log日志:
	mysql> show master status;

在这里插入图片描述
图中的mysql-bin.000001就是最新的日志文件名称,Position是bin日志结束的位置,这两个值会在主机B中使用。
主机A配置完毕,切记为了保持主从的一致性,先不要操作主机A mysql数据库,待主机B配置完成且设置同步后才可以进行操作。
主机B配置:

# 修改配置文件:
[root@ localhost ~]# vim /etc/my.cnf
log-bin=mysql-bin
server-id=2
relay-log=mysql-relay
# 重启mysql服务器
[root@ localhost ~]# service mysqld restart
# 增加同步用户:
mysql -uroot –p
mysql> grant replication slave on *.* to 'tom'@'%' identified by '123';
mysql> flush privileges;
# 初始化bin-log日志:
mysql> reset master;
# 查看bin-log日志:
mysql> show master status;

在这里插入图片描述
同步配置:
在主机A上操作:

mysql> change master to
master_host='192.168.189.141',
master_user='tom',
master_password='123',
master_log_file='mysql-bin.000001',
master_log_pos=120;

这里的master_host是指主机B的ip地址,master_uesr是执行同步操作的用户名,master_password是执行同步的用户密码,master_log_file是主机B的bin-log日志,master_log_pos是从bin-log日志开始同步的位置。

# 开启同步:
	mysql> start slave;

查看同步设置是否成功:
在这里插入图片描述
在主机B 上操作:

mysql> change master to
master_host='192.168.189.140',
master_user='tom',
master_password='123',
master_log_file='mysql-bin.000001',
master_log_pos=120;
mysql> start slave;
mysql> show slave status\G;

在这里插入图片描述
则操作完成。
同步测试:
在A主机或者B主机上做都可以。

# 在A上新建一个数据库
	mysql> create database test1;
# 在B上查看
	mysql>show  databases;
	mysql> create database test1;
#在A上查看
	mysql>show  databases;

二、安装Keepalived
MASTER的IP: 10.0.0.21
BACKUP的IP: 10.0.0.22

# 主上的操纵
[root@ localhost ~]# yum -y install keepalived
# 修改配置文件
[root@ localhost ~]# vim /etc/keepalived/keepalived.conf
vrrp_instance VI_1 {
​    state MASTER           \\主机的初始身份:MASTER/BACKUP
​    interface eth0         \\VIP绑定网卡设备
​    virtual_router_id 51   \\路由广播ID,同步ID可以接受广播
​    priority 100           \\优先级,越大优先级越高,主的初始优先级必须要大于备份的主机
​    advert_int 1
​    nopreempt
​    authentication {
​        auth_type PASS
​        auth_pass 1111
​    }
​    virtual_ipaddress {
​       10.0.0.30            \\VIP地址
​    }
}

在这里插入图片描述

virtual_server 10.0.0.30 3306 {        \\虚拟服务器,IP地址是VIP,端口是对应服务的端口
​    delay_loop 6
​    nat_mask 255.255.255.0
​    protocol TCP
​    real_server 10.0.0.21 3306 {      \\真实服务器的ip和端口
​        weight 1
​        notify_down /root/kill.sh     \\检测到down状态时要执行的脚本,内容为停止keepalived
​        TCP_CHECK {                   \\健康检查模块,通过TCP检查
​            connect_port 3306         \\TCP要检查的端口
​            connect_timeout 3         \\超时时间
​            nb_get_retry 3            \\重试次数
​           delay_before_retry 3       \\检查轮询周期时间
​        }
​    }
}

在这里插入图片描述
配置文件配置完毕后保存退出

# 并编写脚本
[root@ localhost ~]# vim /root/kill.sh
# 脚本内容:
#!/bin/bash
service keepalived stop
# 给脚本加权限
[root@ localhost ~]# chmod +x /root/kill.sh
# 重启keepalived
[root@ localhost ~]# service keepalived restart
# 重启成功后,通过ip  a查看VIP是否生成
[root@ localhost ~]# ip  a

备份主机操作

# 拷贝配置文件到主机
[root@ localhost ~]# scp root@**10.0.0.21**:/etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf
# 编辑,只需更改几个参数即可
[root@ localhost ~]# vim /etc/keepalived/keepalived.conf
 vrrp_instance VI_1 {
​    state BACKUP            \\主机的初始身份:MASTER/BACKUP
​    interface eth0          \\VIP绑定网卡设备
​    virtual_router_id 51    \\路由广播ID,同步ID可以接受广播
​    priority 90             \\优先级,越大优先级越高,主的初始优先级必须要大于备份的主机
​    advert_int 1
​    nopreempt
​    authentication {
​        auth_type PASS
​        auth_pass 1111
​    }
​    virtual_ipaddress {
​        10.0.0.30            \\VIP地址
​    }
}

virtual_server 10.0.0.30 3306 {         \\虚拟服务器,IP地址是VIP,端口是对应服务的端口
​    delay_loop 6
​    nat_mask 255.255.255.0
​    protocol TCP
​    real_server 10.0.0.22 3306 {       \\真实服务器的ip和端口
​        weight 1
​        notify_down /root/kill.sh      \\检测到down状态时要执行的脚本,内容为停止keepalived
​        TCP_CHECK {                    \\健康检查模块,通过TCP检查
​            connect_port 3306          \\TCP要检查的端口
​            connect_timeout 3          \\超时时间
​            nb_get_retry 3             \\重试次数
​            delay_before_retry 3       \\检查轮询周期时间
​        }
​    }
}

配置文件配置完毕后保存退出

# 并编写脚本
[root@ localhost ~]# vim /root/kill.sh
#脚本内容:
#!/bin/bash
service keepalived stop
# 给脚本加权限
[root@ localhost ~]# chmod +x /root/kill.sh
# 重启keepalived
[root@ localhost ~]# service keepalived restart
# 重启成功后,通过ip  a查看VIP是否生成
[root@ localhost ~]# ip  a
# 查看日志
[root@ localhost ~]# tail -f /var/log/messages
发布了25 篇原创文章 · 获赞 9 · 访问量 2489

猜你喜欢

转载自blog.csdn.net/chen_jimo_c/article/details/103810634