环境:centos6.7 最小化安装

192.168.100.152 master 主
192.168.100.153 slave 从
192.168.100.132 v_ip 浮动IP

配置ssh密码登录,关闭selinux,关闭防火墙
1、安装mysql
#yum install mysql* -y

2、配置mysql配置文件
#配置/etc/my.cnf
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
server-id = 1 //这个ID是mysql数据库的唯一标识符
log-bin = mysql-bin
log_bin_trust_function_creators = 1
binlog_format = mixed
relay-log = relay-bin
relay-log-index = slave-relay-bin.index
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
default-character-set=utf8
#slave_skip_errors = 1146
#binlog-ignore-db=mysql
[client]
default-character-set=utf8

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

3、启动mysqld服务(启动mysql数据库)
#service mysqld start
#chkconfig mysqld on

4、设置mysql数据库root密码
#mysqladmin -uroot password '12345678'

4、创建授权用户,配置同步。
#####################################################################################################################################################################################
master上:
mysql>grant replication slave on *.* to 'rep'@'192.168.100.153' identified by '12345678';

查看slave上的mysql的master_log_file和master_log_pos;
master_log_file=`mysql -uroot -p12345678-e "show master status;" | grep mysql | cut -f 1`
master_log_pos=`mysql -uroot -p12345678 -e "show master status;" | grep mysql | cut -f 2`
mysql>change master to master_host='192.168.100.153',master_user='rep',master_password='12345678',master_log_file="\'$fsmanager_log_file\'",master_log_pos=$fsmanager_log_pos;
mysql>start slave;
service mysqld restart

slave上:
mysql>grant replication slave on *.* to 'rep'@'192.168.100.152' identified by '12345678';
查看slave上的mysql的master_log_file和master_log_pos
master_log_file=`mysql -uroot -p12345678 -e "show master status;" | grep mysql | cut -f 1`
master_log_pos=`mysql -uroot -p12345678 -e "show master status;" | grep mysql | cut -f 2`
mysql>change master to master_host='192.168.100.152',master_user='rep',master_password='12345678',master_log_file="\'$fsmanager_log_file\'",master_log_pos=$fsmanager_log_pos;
mysql>start slave;
service mysqld restart
#####################################################################################################################################################################################
mysql -uroot -p12345678 -e "grant all privileges on *.* to 'root'@'v_ip' identified by '12345678' with grant option;"
mysql -uroot -p12345678 -e "grant all privileges on *.* to 'root'@'masterr' identified by '12345678' with grant option;"

############# 配置高可用 #########
1、安装
#yum install -y kernel-devel openssl-devel popt-devel keepalived
#######################################################
master上:
vim /etc/keepalived/keepalived.conf
global_defs {
router_id mysql1
}
vrrp_script chk_mysql {
script "/etc/keepalived/check_mysql.sh"
interval 3
}
vrrp_instance VI_1 {
state MASTER //只有MASTER和BACKUP 两种状态,都必须大写。
interface eth0 //进行通信的端口
virtual_router_id 146 //此ID是网络中的唯一 0--255之间
priority 100 //#权重,数值越大,权重越大。MASTER大于SLAVE
advert_int 1 //MASTER和SLAVE负载均衡器之间同步检查的时间间隔。单位是:秒
authentication { //MASTER和SLAVE的认证方式
auth_type PASS
auth_pass andrew
}
virtual_ipaddress { //用到的浮动IP组
192.168.100.132
}
track_script {
chk_mysql
}
}

slave上:
global_defs {
router_id mysql2
}
vrrp_script chk_mysql {
script "/etc/keepalived/check_mysql.sh"
interval 3
}
vrrp_instance VI_1 {
state BACKUP
interface eth0
virtual_router_id 146
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass andrew
}
virtual_ipaddress {
192.168.100.132
}
track_script {
chk_mysql
}
}
#######################################################
cat >/etc/keepalived/check_mysql.sh<<-EOF
#!/bin/bash

d=`date --date today +%Y%m%d_%H:%M:%S`
n=`ps -C mysqld --no-heading|wc -l`
if [ $n -eq "0" ]; then
service mysqld start
n2=`ps -C mysqld --no-heading|wc -l`
if [ $n2 -eq "0" ]; then
echo "$d mysql down,keepalived will stop" >> /var/log/check_mysql.log
service keepalived stop
fi
fi
EOF

chmod 755 /etc/keepalived/check_mysql.sh
service keepalived restart
chkconfig keepalived on

MySQL双主+keepalived实现高可用实现(热备)的更多相关文章

  1. 通过keepalived搭建MySQL双主模式的高可用集群系统

    1. 配置MySQL双主模式 1.修改my.cnf配置文件 默认情况下,MySQL的配置文件是/etc/my.cnf,在配置文件的[mysqld]段添加如下内容: server-id=1 log-bi ...

  2. mysql双主+keepalived【转】

    简单原理 1.在两台服务器上分别部署双主keepalived,主keepalived会在当前服务器配置虚拟IP用于mysql对外提供服务 2.在两台服务器上分别部署主主mysql,用于故障切换 3.当 ...

  3. heartbeat+DRBD 高可用 双机热备

    heartbeat+DRBD 高可用 双机热备 原创博文http://www.cnblogs.com/elvi/p/7658109.html ## heartbeat+DRBD 高可用 双机热备 # ...

  4. Nginx+keepalived 高可用双机热备(主从模式/双主模式)

    基础介绍负载均衡技术对于一个网站尤其是大型网站的web服务器集群来说是至关重要的!做好负载均衡架构,可以实现故障转移和高可用环境,避免单点故障,保证网站健康持续运行. 关于负载均衡介绍,可以参考:li ...

  5. mysql双主+keepalived

    环境 OS: centos7Mysql 版本: mysql 5.7Keepalived: keepalived-1.2.20Mysql-vip:192.168.41.100Mysql-master1: ...

  6. MySQL 双主+keepalived 详细文档 M-M+keepalived

    1. 操作系统,系统环境,目结结构,用户,权限,日志路径,脚本2. 配置规范化 1.1 操作系统准备 操作系统 Kylin Linux release 3.3.1707 (Core)数据库版本 mys ...

  7. keepalived + haproxy 实现web 双主模型的高可用负载均衡--转

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://xz159065974.blog.51cto.com/8618592/140581 ...

  8. Mysql双主 keepalived+lvs实现mysql高可用性

    MySQL复制 能够保证数据的冗余的同时可以做读写分离来分担系统压力,如果是主主复制还可以很好的避免主节点的单点故障.但是MySQL主主复制存在一些问题无法满足我们的实际需要:未提供统一访问入口来实现 ...

  9. centos7下mysql双主+keepalived

    一.keepalived简介 keepalived是vrrp协议的实现,原生设计目的是为了高可用ipvs服务,keepalived能够配置文件中的定义生成ipvs规则,并能够对各RS的健康状态进行检测 ...

随机推荐

  1. MongoDB Java API操作很全的整理

    MongoDB 是一个基于分布式文件存储的数据库.由 C++ 语言编写,一般生产上建议以共享分片的形式来部署. 但是MongoDB官方也提供了其它语言的客户端操作API.如下图所示: 提供了C.C++ ...

  2. 在docker中创建使用MySQL,并实现远程连接navicat

    在 docker 中使用 mysql 安装完docker之后,在命令行中输入docker images可以查看自己创建的image(安装下载docker的教程很多了,大家需要可以去查一下就可以了)这里 ...

  3. 《JavaScript设计模式与开发实践》-- 代理模式

    详情个人博客:https://shengchangwei.github.io/js-shejimoshi-daili/ 代理模式 1.定义 代理模式:代理模式是为一个对象提供一个代用品或占位符,以便控 ...

  4. 【BZOJ4720】【UOJ262】【NOIP2016】换教室

    Description 对于刚上大学的牛牛来说,他面临的第一个问题是如何根据实际情况申请合适的课程. 在可以选择的课程中,有 2n 节课程安排在n个时间段上.在第 i(1≤i≤n)个时间段上,两节内容 ...

  5. 安装ubuntu16虚拟机,下载android源码,配置编译环境

    Android 源码编译步骤: 我考虑了一下,目前电脑装了SSD,8G内存,使用虚拟机编译源码应该够用. 首先下载虚拟机软件,由于最近一直在使用virtualbox,感觉蛮不错了,下载地址: http ...

  6. 20190630模拟赛B(单调队列优化dp)

    .dp无疑了其实. 在考场上,我写了一个错解,但是数据小都能过,只是会爆空间,考场上想着怎么用滚动数组优化来着....把错解的方程列出来吧 ;i<=n;i++) { ;j<=k;j++) ...

  7. 「动态规划」-数位dp专题

    数位dp,今天学长讲的稍玄学,课下花了一会时间仔细看了一下,发现板子是挺好理解的,就在这里写一些: 数位dp主要就是搞一些在区间中,区间内的数满足题目中的条件的数的个数的一类题,题目一般都好理解,这时 ...

  8. Docker 学习 | 基础命令

    基本概念定义 基本组成 客户端/守护进程 C/S架构 本地/服务器 镜像 容器基石 只读文件系统 联合加载(union mount) 容器 通过镜像启动 执行 写时复制 仓库 公有 docker hu ...

  9. it公司比较

    1:本人西电通院2013届毕业硕士,根据今年找工作的情况以及身边同学的汇总,总结各大公司的待遇如下,吐血奉献给各位学弟学妹,公司比较全,你想去的公司不在这里面,基本上是无名小公司了:但无名小公司有时也 ...

  10. git push后出现错误 ![rejected] master -> master(non-fast-forward) error:failed to push some refs to 'XXX'

    本地创建了一个project并在GitHub上创建了一个仓库,想要将本地的仓库链接到远程仓库我用的是如下方法:git init    //初始化本地仓库git remote add origin XX ...