MySQL主主高可用(keepalive)
2台新的虚拟机172.16.1.1、172.16.1.2 (配置yum源 )
安装数据库服务
其中 172.16.1.1、172.16.1.2运行数据库服务并设置数据库管理员从本机登录的密码是xzw12345 (mysql-server.5.6)
tar -xvf MySQL-5.6.rpm.tar (RPM包安装)
rpm -Uvh MySQL-*.rpm
/etc/init.d/mysql start ; chkconfig mysql on
修改密码
[root@mail ~]# cat /root/.mysql_secret
[root@mail ~]# mysql -uroot -pjBJIfBwD
mysql> set password for root@"localhost"=password("xzw12345");
mysql> quit;
[root@mail ~]# mysql -uroot -pxzw12345
mysql>
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
主主结构
master203:
mysql -uroot -pxzw12345
mysql> grant replication slave on *.* to slaveuser@"%" identified by "123456";
mysql>quit;
vim /etc/my.cnf
[mysqld]
log-bin=master203
server_id=203
:wq
/etc/init.d/mysql restart
ls /var/lib/mysql/master203.*
mysql -uroot -pxzw12345
mysql>show master status;
master204:
mysql -uroot -pxzw123
mysql> grant replication slave on *.* to slaveuser@"%" identified by "123456";
mysql>quit;
vim /etc/my.cnf
[mysqld]
log-bin=master204
server_id=204
:wq
/etc/init.d/mysql restart
ls /var/lib/mysql/master204.*
mysql -uroot -pxzw12345
mysql>show master status;
master204向master203发起同步操作,指定相关master172.16.1.1的相关参数
mysql -uroot -pxzw12345
mysql> change master to master_host="172.16.1.1",master_user="slaveuser",master_password="123456",master_log_file="master203.000001",master_log_pos=120;
mysql> start slave;
mysql> show slave status\G;
IO yes
SQL yes
master203向master204发起同步操作,指定相关master172.16.1.2的相关参数
mysql -uroot -pxzw12345
mysql> change master to master_host="172.16.1.2",master_user="slaveuser",master_password="123456",master_log_file="master204.000001",master_log_pos=120;
mysql> start slave;
mysql> show slave status\G;
IO yes
SQL yes
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
测试
1.master203
mysql -uroot -pxzw12345
mysql> create database bbsdb;
mysql> grant all on bbsdb.* to student@"%" identified by "123";
mysql> quit;
2.master204
mysql -uroot -pxzw12345
mysql>use bbsdb;
mysql> create table bbsdb.t1(id int);
mysql> quit;
3.在客户端访问(192.168.1.200):
ping x.x.x.1
mysql -hx.x.x.1 -ustudent -p123
mysql> insert into bbsdb.t1 values(101);
在master203、master204
mysql -uroot -pxzw12345
mysql > select * from bbsdb.t1 ; #也能够查看到记录
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
本文为大家讲解的是mysql错误:Last_IO_Error: error connecting to master解决方法,感兴趣的同学参考下。
错误提示:
Slave_IO_Running: Connecting
Slave_SQL_Running: Yes
Last_IO_Errno: 2003
Last_IO_Error: error connecting to master 'slaveuser@172.16.1.1:3306' - retry-time: 60 retries: 1
错误原因:
主数据库服务器没有关闭防火墙。
解决措施:
1、去主服务器:172.16.1.1关闭防火墙。
[root@mysql204 ~]# service iptables stop;chkconfig iptables off
iptables: Setting chains to policy ACCEPT: filter [ OK ]
iptables: Flushing firewall rules: [ OK ]
iptables: Unloading modules: [ OK ]
2、去从服务器:stop slave;start slave;
mysql> stop slave;
Query OK, 0 rows affected (0.01 sec)
mysql> start slave;
Query OK, 0 rows affected (0.01 sec)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Keepalived高可用服务器(keepalived-1.2.7)
问题
两台Linux服务器(172.16.1.1、172.16.1.2),做MySQL服务器,并部署Keepalived高可用软件,一台作为客户端主机(192.168.1.200),实现如下功能:
- 使用Keepalived实现MySQL服务器的高可用
- Web服务器IP地址分别为172.16.1.1和172.16.1.2
- Web服务器的漂移VIP地址为172.16.1.3
- 客户端通过访问VIP地址访问MySQL服务
步骤
实现此案例需要按照如下步骤进行。
步骤一:配置网络环境
1)设置MySQL服务器网络参数
[root@mysql203 ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=none
IPADDR=172.16.1.1
NETMASK=255.255.255.0
#DNS2=221.4.8.1
#GATEWAY=192.168.1.1
#DNS1=192.168.9.1
IPV6INIT=no
USERCTL=no
[root@mysql204 ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=none
IPADDR=172.16.1.2
NETMASK=255.255.255.0
#DNS2=221.4.8.1
#GATEWAY=192.168.1.1
#DNS1=192.168.9.1
IPV6INIT=no
USERCTL=no
步骤二:安装Keepalived软件
注意:两台MySQL服务器做相同的操作。
[root@mysql203 package]# yum install -y gcc kernel-devel openssl-devel popt-devel
[root@mysql203 package]# tar -xzf keepalived-1.2.7.tar.gz
[root@mysql203 package]# cd keepalived-1.2.7
[root@mysql203 keepalived-1.2.7]# ./configure --sysconf=/etc
[root@mysql203 keepalived-1.2.7]# make && make install
[root@mysql203 keepalived-1.2.7]# ln -s /usr/local/sbin/keepalived /sbin/
[root@mysql203 keepalived-1.2.7]# chkconfig keepalived on
步骤三:部署Keepalived服务
1)修改web1服务器Keepalived配置文件
- [root@mysql203~]# vim /etc/keepalived/keepalived.conf
- global_defs {
- notification_email {
- admin@sina.com //设置报警收件人邮箱
- }
- notification_email_from root@localhost //设置发件人
- smtp_server 127.0.0.1 //定义邮件服务器
- smtp_connect_timeout 30
- router_id mysql203 //设置路由ID号
- }
- vrrp_instance VI_1 {
- state MASTER //主服务器为MASTER
- interface eth1 //定义网络接口
- virtual_router_id 51 //主辅VRID号必须一致
- priority 100 //服务器优先级
- advert_int 1
- authentication {
- auth_type pass
- auth_pass forlvs //主辅服务器密码必须一致
- }
- virtual_ipaddress { 172.16.1.3}
- }
2)修改mysql204服务器Keepalived配置文件
- [root@mysql204~]# vim /etc/keepalived/keepalived.conf
- global_defs {
- notification_email {
- admin@sina.com //设置报警收件人邮箱
- }
- notification_email_from root@localhost //设置发件人
- smtp_server 127.0.0.1 //定义邮件服务器
- smtp_connect_timeout 30
- router_id mysql204 //设置路由ID号
- }
- vrrp_instance VI_1 {
- state SLAVE //从服务器为SLAVE
- interface eth1 //定义网络接口
- virtual_router_id 51 //主辅VRID号必须一致
- priority 90 //服务器优先级
- advert_int 1
- authentication {
- auth_type pass
- auth_pass forlvs //主辅服务器密码必须一致
- }
- virtual_ipaddress { 172.16.1.3 }
- }
3)启动服务
- [root@mysql203~]# service keepalived start
- [root@mysql204~]# service keepalived start
步骤四:测试
1)登录两台Web服务器查看VIP信息
- [root@mysql203~]# ip addr show
- [root@mysql204~]# ip addr show
2) 客户端访问
客户端使用mysql命令连接172.16.1.3,查看mysql数据库;停掉MySQL203服务器,客户端再次查看mysql数据库,验证是否可以正常访问服务。
mysql -h172.16.1.3 -ustudent -p123
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
MySQL健康检查
一、
[root@mysql203 ~]# vim /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
notification_email {
linux985@sina.com
}
notification_email_from root@localhost
smtp_server 172.0.0.1
smtp_connect_timeout 30
router_id mysql203
}
vrrp_script chk_mysql_proxy {
script "/etc/keepalived/mysql.sh"
interval 2 #间隔两秒
weight 2
}
vrrp_instance VI_1 {
state MASTER
interface eth1
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
172.16.1.3
}
track_script {
chk_mysql_proxy
}
}
二、
[root@mysql203 ~]# vim /etc/keepalived/mysql.sh
#!/bin/bash
MYSQL_OK=1
function check_mysql_helth (){
mysql -uroot -pxzw12345 -e "show status;" &>/dev/null
if [ $? = 0 ] ;then
MYSQL_OK=1
else
MYSQL_OK=0
fi
return $MYSQL_OK
}
check_mysql_helth
if [ $MYSQL_OK -eq 0 ]
then
pkill keepalived
exit 1
fi
MySQL主主高可用(keepalive)的更多相关文章
- MySQL + KeepAlived + LVS 单点写入主主同步高可用架构实验
分类: MySQL 架构设计 2013-05-08 01:40 5361人阅读 评论(8) 收藏 举报 mysql 高可用 keepalive ㈠ 实战环境 服务器名· IP OS MySQL odd ...
- Apache+lvs高可用+keepalive(主从+双主模型)
Apache+lvs高可用+keepalive(主从+双主模型) keepalive实验准备环境: httpd-2.2.15-39.el6.centos.x86_64 keepalived-1 ...
- keepalived+mysql双主复制高可用方案
MySQL双主复制,即互为Master-Slave(只有一个Master提供写操作),可以实现数据库服务器的热备,但是一个Master宕机后不能实现动态切换.而Keepalived通过虚拟IP,实现了 ...
- MySQL集群搭建(6)-双主+keepalived高可用
双主 + keepalived 是一个比较简单的 MySQL 高可用架构,适用于中小 MySQL 集群,今天就说说怎么用 keepalived 做 MySQL 的高可用. 1 概述 1.1 keepa ...
- MySQL的keepalived高可用监控脚本
MySQL的keepalived高可用监控脚本 MySQL(或者其它服务)的keepalived高可用监控脚本 开发脚本需求 :我们知道,keepalive是基于虚拟ip的存活来判断是否抢占maste ...
- MySQL数据库的优化(下)MySQL数据库的高可用架构方案
MySQL数据库的优化(下)MySQL数据库的高可用架构方案 2011-03-09 08:53 抚琴煮酒 51CTO 字号:T | T 在上一篇MySQL数据库的优化中,我们跟随笔者学习了单机MySQ ...
- mysql数据库的高可用方法总结
高可用架构对于互联网服务基本是标配,无论是应用服务还是数据库服务都需要做到高可用.虽然互联网服务号称7*24小时不间断服务,但多多少少有一 些时候服务不可用,比如某些时候网页打不开,百度不能搜索或者无 ...
- 浅谈mysql主从复制的高可用解决方案
1.熟悉几个组件(部分摘自网络)1.1.drbd —— DRBD(Distributed Replicated Block Device),DRBD号称是 "网络 RAID" ...
- MySQL系列:高可用架构之MHA
前言 从11年毕业到现在,工作也好些年头,入坑mysql也有近四年的时间,也捣鼓过像mongodb.redis.cassandra.neo4j等Nosql数据库.其实一直想写博客分享下工作上的零零碎碎 ...
随机推荐
- cat和cp的神奇用法:制作U盘安装盘
使用U盘安装debian,U盘的制作方法: 方法一: https://www.debian.org/doc/manuals/debian-handbook/installation.zh-cn.htm ...
- 9.简单理解ES分布式
主要知识点: 1.Elasticsearch对复杂分布式机制的透明隐藏特性 2.Elasticsearch的垂直扩容与水平扩容 3.增减或减少节点时的数据rebalance 4.master节 ...
- 【[Offer收割]编程练习赛15 C】过河问题
[题目链接]:http://hihocoder.com/problemset/problem/1516 [题意] [题解] 状态压缩DP+bfs 这个过河问题能用bfs来搞.涨知识了; 首先; 16个 ...
- (11)Spring Boot配置ContextPath【从零开始学Spring Boot】
Spring boot默认是/ ,这样直接通过http://ip:port/就可以访问到index页面,如果要修改为http://ip:port/path/ 访问的话,那么需要在Application ...
- 如何用PYTHON的CGIHTTPSERVER模块模拟POST请求?
这次又要逼真一点点,可以弄POST请求啦. 在WEB根目录下新建cgi-bin目录(据说是规模要求),然后运行命令: python -m CGIHTTPServer CGI-BIN目录下,form.p ...
- 洛谷 P2412 查单词
P2412 查单词 题目背景 滚粗了的HansBug在收拾旧英语书,然而他发现了什么奇妙的东西. 题目描述 udp2.T3如果遇到相同的字符串,输出后面的 蒟蒻HansBug在一本英语书里面找到了一个 ...
- 收到微软寄来的MVP包裹
经过一年多的艰苦努力,最终在7月份获得了微软SharePoint的MVP. 今天收到了微软从美国寄来的包裹. 内部图: 奖牌: 回忆过去一年.白天和客户撕逼,晚上回家写博客,或者翻译英文文章,去论坛回 ...
- UVa Problem 10051
这题有点类似LIS,由于颜色最多100种,所以只需建立一个100的数组,按对立面的关系以某种颜色为向上面的最大值就可以了. #include <iostream> #include & ...
- C++开发人脸性别识别教程(12)——加入性别识别功能
经过之前几篇博客的解说,我们已经成功搭建了MFC应用框架,并实现了主要的图像显示和人脸检測程序,在这篇博文中我们要向当中加入性别识别代码. 关于性别识别,之前已经专门拿出两篇博客的篇幅来进行解说.这里 ...
- maven+springMVC+mybatis+easyUI管理用户增删改查
1.项目演示图 2.项目简单介绍 项目分为两个projectdomain和manager.project结构例如以下图所看到的.当中domain是Maven javaproject主要完毕对数据库的操 ...