mysql系列之8.mysql高可用 (keepalived)
环境: centos6.5_x64
准备:
两台mysql机器
主1 master: 192.168.32.130
主2 backup: 192.168.32.131
VIP: 192.168.32.100
步骤:
1.配置mysql的双主架构
2.安装keepalived
keepalived-1.2.23.tar.gz
yum -y install openssl openssl-devel
wget http://www.keepalived.org/software/keepalived-1.2.23.tar.gz
tar zxvf keepalived-1.2.23.tar.gz
cd keepalived-1.2.23
./configure --prefix=/usr/local/keepalived --with-kernel-dir=/usr/src/kernels/2.6.18-164.el5-i686
make && make install
3.把keepalived设置为系统服务
cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/
cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
mkdir /etc/keepalived/
cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/
cp /usr/local/keepalived/sbin/keepalived /usr/sbin/
4.修改keepalived配置
vi /etc/keepalived/keepalived.conf //详见.conf详细配置
vi /usr/local/keepalived/mysql.sh
#!/bin/bash pkill keepalived
chmod +x /usr/local/keepalived/mysql.sh
/etc/init.d/keepalived start
5.测试
5.1 分别在两台mysql机器上授权, 允许用户远程登录
mysql> grant all on *.* to'kkk'@'192.168.32.%' identified by '123456';
mysql> flush privileges;
5.2 在任何一台机器上, 通过虚拟IP来连接mysql服务器
mysql -ukkk -p123456 -h192.168.32.100
5.3 停止master,看是否能正常切换到backup,然后来查看VIP在哪台服务器上
service mysqld stop
ip addr
5.4 master服务器故障恢复后,是否主动抢占资源,成为活动服务器 (取决于这个参数nopreempt)
keepalived.conf详细配置
! Configuration File for keepalived global_defs { notification_email { acassen@firewall.loc failover@firewall.loc sysadmin@firewall.loc } notification_email_from Alexandre.Cassen@firewall.loc smtp_server 192.168.200.1 smtp_connect_timeout router_id LVS_DEVEL vrrp_skip_check_adv_addr vrrp_strict vrrp_garp_interval vrrp_gna_interval } vrrp_instance VI_1 { state BACKUP interface eth0 virtual_router_id priority #优先级 (backup设置为90) advert_int nopreempt #不主动抢占资源,只在master这台优先级高的设置 (backup不设置) authentication { auth_type PASS auth_pass } virtual_ipaddress { 192.168.32.100 } } virtual_server { delay_loop #lb_algo wrr #lb_kind DR persistence_timeout protocol TCP real_server { #真实mysql服务器的ip地址 weight notify_down /usr/local/keepalived/mysql.sh #貌似没有执行脚本, why? TCP_CHECK { connect_timeout nb_get_retry delay_before_retry connect_port } }
;
最新文章
- 【PHP开发篇】一个统计客户端商机提交的获取IP地址
- UIDatePicker日期选取器
- 关于javascript模块加载技术的一些思考
- Socket实现仿QQ聊天(可部署于广域网)附源码(1)-简介
- HDU 1532 最大流模板题
- 原创翻译-测试驱动开发(TDD)
- windows下安装coreseek/sphinx
- [转载] Linux下高并发socket最大连接数所受的各种限制
- Android软键盘强制弹出,隐藏输入法.
- JVM学习积累
- 解决PowerDesigner中DBMS设置的问题(Repost)
- java-StringTokenizer类
- cocos2d-x3.2中加入Android手机震动
- 远程连接mysql数据库,1130问题
- JS和JQuery中的事件托付 学习笔记
- 201621123062《java程序设计》第六周作业总结
- 自定义GridLookUpEdit编辑器
- SpringBoot2.0集成FastDFS
- hdu 2197 求长度为n的本原串 (快速幂+map)
- spring的applicationContext.xml中的DBCP配置如下:
热门文章
- 纯手写Myatis框架
- 转:IAdaptable &; IAdapterFactory
- Maven在[INFO] Generating project in Interactive mode卡住的问题解决
- winform程序公布后,client下载报错“您的 Web 浏览器设置不同意执行未签名的应用程序”
- 一波三折ST-Link
- vue2 axios 接口函数封装
- javascript获取星期
- 使用Apache Benchmark做压力测试遇上的5个常见问题
- python thrift hbase安装连接
- 华为p20:拍美景,听讲解,旅行更智能