keepalived打造mysql主主高可用
我的配置:
[root@mysql ~]# rpm -qa keepalived
keepalived-1.2.13-5.el6_6.x86_64
[root@mysql ~]# cat /etc/issue
CentOS release 6.5 (Final)
Kernel \r on an \m
[root@test ~]# mysql -uroot -p123 -h192.168.31.132
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 53
Server version: 5.5.46-log MySQL Community Server (GPL) by Remi
[root@mysql ~]# mysql -u root -p123 -h192.168.31.136
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 124
Server version: 5.5.32-MariaDB-log MariaDB Server
mysql服务器ip地址 | mysqlVIP | mysql版本 |
192.168.31.132 | 192.168.31.131 | 5.5.46-log MySQL Community Server |
192.168.31.136 | 192.168.31.131 | 5.5.32-MariaDB-log MariaDB Server |
这里mysql的安装和配置主主复制就不提了:
mysql的安装:网上很多不一一复制了
mysql主主复制配置案例: http://blog.chinaunix.net/uid-30234663-id-5192230.html
开始配置安装:
1:下载安装keepalived(所有节点都要安装):
[root@mysql ~]# yum install -y keepalived
然后配置如下:
192.168.31.136配置:
[root@mysql ~]# cat /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
notification_email {
hz7726@163.com
}
notification_email_from Alexandre.Cassen@firewall.loc
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id LVS_DEVEL
}
vrrp_instance VI_1 {
state BACKUP
interface eth0
virtual_router_id 60
priority 90
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.31.131
}
}
virtual_server 192.168.31.131 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.31.136 3306 {
weight 3
notify_down /tmp/mysql.sh
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
connect_port 3306
}
}
}
192.168.31.132的配置如下:
[root@test ~]# cat /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
notification_email {
hz7726@163.com
}
notification_email_from Alexandre.Cassen@firewall.loc
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id LVS_DEVEL
}
vrrp_instance VI_1 {
state BACKUP
interface eth0
virtual_router_id 60
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.31.131
}
}
virtual_server 192.168.31.131 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.31.132 3306 {
weight 3
notify_down /tmp/mysql.sh
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
connect_port 3306
}
}
}
注意:要在两个服务器都要给其用户授权:不然报错如下
[root@test ~]# mysql -uroot -p123 -h192.168.31.131
ERROR 1045 (28000): Access denied for user 'root'@'192.168.31.131' (using password: YES)
解决办法:
mysql> grant all on *.* to root@'192.168.31.%' identified by '123';
Query OK, 0 rows affected (0.05 sec)
mysql> flush privileges
-> ;
Query OK, 0 rows affected (0.00 sec)
授权之后再在192.168.31.132和192。168.31.136上写mysql.sh检测脚本
如下:
#!/bin/sh
pkill keepalived #检测资源放置脑裂
在测试随便一台服务器:
[root@mysql ~]# mysql -uroot -p123 -h 192.168.31.131
MariaDB [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| han |
| hanye |
| mysql |
| performance_schema |
| test |
+--------------------+
6 rows in set (0.00 sec)
停掉一台服务器在测试:
valid_lft forever preferred_lft forever
[root@mysql ~]# pkill keepalived
[root@mysql ~]# mysql -uroot -p123 -h 192.168.31.131
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MySQL connection id is 54
Server version: 5.5.46-log MySQL Community Server (GPL) by Remi
Copyright (c) 2000, 2013, Oracle, Monty Program Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MySQL [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| blog_article02 |
| db1 |
| db2 |
| db3 |
| dbtest1 |
| dbtest2 |
| dbtest3 |
| mycat |
| mysql |
| performance_schema |
| syslog |
+--------------------+
12 rows in set (0.07 sec)
注意:我这边两台服务器的数据是不一致的:更容易发现高可用成功与否!!!
[root@test ~]# ifconfig eth0 | awk -F'[: ]+' '/inet addr/{print $4}'
192.168.31.132
[root@test ~]# mysql -u root -p123
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 86
Server version: 5.5.46-log MySQL Community Server (GPL) by Remi
Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| blog_article02 |
| db1 |
| db2 |
| db3 |
| dbtest1 |
| dbtest2 |
| dbtest3 |
| mycat |
| mysql |
| performance_schema |
| syslog |
+--------------------+
12 rows in set (0.00 sec
[root@mysql ~]# ifconfig eth0 | awk -F'[: ]+' '/inet addr/{print $4}'
192.168.31.136
[root@mysql ~]# mysql -uroot -p123
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 734
Server version: 5.5.32-MariaDB-log MariaDB Server
Copyright (c) 2000, 2013, Oracle, Monty Program Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| han |
| hanye |
| mysql |
| performance_schema |
| test |
+--------------------+
6 rows in set (0.00 sec)
ok了配置完成
转载于:https://blog.51cto.com/9025736/2061956
keepalived打造mysql主主高可用相关推荐
- keepalived mysql双主架构图_基于MySQL双主的高可用解决方案理论及实践
MySQL在互联网应用中已经遍地开花,但是在银行系统中,还在生根发芽的阶段.本文记录的是根据某生产系统实际需求,对数据库高可用方案从需求.各高可用技术特点对比.实施.测试等过程进行整理,完善Mysql ...
- Keepalived+Haproxy+Mysql(双主)高可用架构部署
Keepalived+Haproxy+Mysql(双主)高可用架构部署 一.背景 公司原部署的Mysql架构为keepalived+Mysql双主,但是这个架构有个缺陷是所有的读写请求都在一台机器上( ...
- 基于keepalived的mysql_【实用】基于keepalived的mysql双主高可用系统
原标题:[实用]基于keepalived的mysql双主高可用系统 mysql单节点存储时,系统出现故障时服务不可用.不能及时恢复的问题,因此实际使用时,一般都会使用mysql双机方案,使用keepa ...
- python mysql 双主_keepalived+mysql双主复制高可用方案
MySQL双主复制,即互为Master-Slave(只有一个Master提供写操作),可以实现数据库服务器的热备,但是一个Master宕机后不能实现动态切换.而Keepalived通过虚拟IP,实现了 ...
- 深入浅出keepalived+nginx实现网关主备高可用
深入浅出keepalived+nginx实现网关主备高可用 目录 背景 当用Nginx作网关的时候,如果网关宕机了,整个服务将会变得不可用,那么如何保证网关的高可用呢?我们可以用Keepalived来 ...
- 【博客551】实现主备高可用vip的几种方式
实现主备高可用vip的几种方式 1.keepalived: 注意:要求网络环境有一定要求,需要组播报文不被抑制才可以 具体限制场景:keepalived的限制场景 使用keepalied来实现vip. ...
- 路由器snmp配置_基于keepalived配置数据库主从实现高可用
基于keepalived配置数据库主从实现高可用 使用keepalived来监听端口,实现数据库的高可用.实现效果,其中一台数据库服务器突然出故障或关机时,应该不影响应用正常运行,等待服务器启动之后, ...
- MySQL数据库的高可用方案总结
高可用架构对于互联网服务基本是标配,无论是应用服务还是数据库服务都需要做到高可用.虽然互联网服务号称7*24小时不间断服务,但多多少少有一些时候服务不可用,比如某些时候网页打不开,百度不能搜索或者无法 ...
- Mysql数据库的高可用
本文来说下有关mysql数据库的高可用 文章目录 概述 主从或主主半同步复制 半同步复制优化 高可用架构优化 共享存储 分布式协议 本文小结 概述 高可用,即High Availability,是分布 ...
- 浅谈mysql主从复制的高可用解决方案
1.熟悉几个组件(部分摘自网络) 1.1.drbd -- DRBD(Distributed Replicated Block Device),DRBD号称是 "网络 RAID&qu ...
最新文章
- JAVA入门[6]-Mybatis简单示例
- 搞清这些陷阱,NULL和三值逻辑再也不会作妖
- android 可行性分析,可行性研究项目分析程序与步骤
- 把每列中最大的数据合并一行
- Anatomy of a Program in Memory
- IE8打开网页慢速度优化
- Mac的日常使用之免费NTFS for Mac (mounty)一款免费的NTFS 。畅快的使用移动硬盘
- 数据告诉你杜蕾斯是怎么风靡全球的?
- 电感设计中的细节问题:磁芯损耗、线圈设计
- Socket套接字(Java)
- C语言经典例题及答案3
- 不写默认无参构造方法,调用自定义构造方法时报错No constructor found in com...
- [电池]设置-电池-上次充满电时间计算
- Python学习必备:10个奇妙的Python库,看完后我惊呆了
- 禁止宣传高考状元,学校秒变果园。。
- XPS如何在线批量转换成PDF
- Pandas+Pyecharts | 全国吃穿住行消费排行榜,最‘抠门’的地区居然是北京!!!
- 我猜,每个程序员对着电梯都想过调度算法吧!
- mysql sdo geometry_Oracle 关于WKT构造SDO_GEOMETRY的问题。详解
- 操作无法完成(0x000006ba)。本地后台打印程序服务没有运行。请重新启动后台打印程序或重新启动计算机。
热门文章
- 波士顿动力机器狗学会「撒尿」!拉风狗还不上街遛一遛?
- 用人铁律:高层看胸怀、中层看德行、基层看才能
- PLM系统的成功实施
- 百年 IBM 终于 All In 人工智能和混合云
- 公元2019年,你对AI的信任有几分?
- 苏黎世大学 AI 新研究:仅用少量样本生成高质量光声图像
- 核心算法缺位,人工智能发展面临“卡脖子”窘境
- 李彦宏为什么被称为AI先生,美国权威媒体给出答案
- 告别AI模型黑盒子:可解释性将是数据科学的下一个“超能力”
- SAP HUM 带HU的TO单对应的外向交货单VL09取消PGI之后不能对该交货单执行LT0G做WM层面的返架?