1、准备环境
操作系统:centos 6.5
2台机器主机名为node53、node54
 
  Mysql Lvs keepalived
node2 Y Y Y
node3 Y Y Y
 
 
 
 
 
 
2、安装mysql(配置主主复制)
 
 
服务器名称 ip vip
node2 192.168.0.12 192.168.0.200
node3 192.168.0.13 192.168.0.200

  

 
 
 
 
2.1、安装数据库
      yum install -y mysql
 
2.2、关闭防火墙
    

 service iptables stop
 chkconfig iptables off
 
2.3、修改root用户名/访问权限
use mysql
delete from user where user='';
grant replication slave on *.* to 'root'@'%' identified by '123456';
2.4、修改/etc/my.cnf
在node2机器上配置如下
 
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
 
log-bin=mysql-bin
server-id=1
#需要记录二进制日志的数据库,如果有多个库,写多个binlog-do-db,用逗号隔开,测试时发现不能同步?有空在研究
binlog-do-db=amdb
binlog-do-db=hivedb
binlog-do-db=ooziedb
#不需要记录日志的数据库
binlog-ignore-db=mysql
#需要同步的数据库
replicate-do-db=amdb
replicate-do-db=hivedb
replicate-do-db=ooziedb
#不需要同步的库
replicate-ignore-db=mysql,information_schema
#默认值3600s
slave-net-timeout=60
 
#保证slave挂在任何一台master上都会接收到另一个master的写入信息
log-slave-updates
sync_binlog=1
slave-skip-errors=all
auto_increment_offset=1
auto_increment_increment=2
 
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
 
 
在node3机器上配置如下
 

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
 
log-bin=mysql-bin
#设置不同的id
server-id=2
#需要记录二进制日志的数据库,如果有多个库,写多个binlog-do-db,用逗号隔开,测试时发现不能同步?有空在研究
binlog-do-db=amdb
binlog-do-db=hivedb
binlog-do-db=ooziedb
#不需要记录日志的数据库
binlog-ignore-db=mysql
#需要同步的数据库
replicate-do-db=amdb
replicate-do-db=hivedb
replicate-do-db=ooziedb
#不需要同步的库
replicate-ignore-db=mysql,information_schema
#默认值3600s
slave-net-timeout=60
 
#保证slave挂在任何一台master上都会接收到另一个master的写入信息
log-slave-updates
sync_binlog=1
slave-skip-errors=all
auto_increment_offset=1
auto_increment_increment=2
 
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
 
2.5、重启mysql服务
     service mysqld restart
 
2.6、分别在node2、node3上执行
 
mysql> flush tables with read lock;#防止进入新的数据
Query OK, 0 rows affected (0.00 sec)
mysql> show master status\G;
*************************** 1. row ***************************
            File: mysql-bin.000007
        Position: 438
    Binlog_Do_DB: db_rocky
Binlog_Ignore_DB: mysql
1 row in set (0.00 sec)
 
在node3
 
mysql> flush tables with read lock;
Query OK, 0 rows affected (0.00 sec)
mysql> show master status\G;
*************************** 1. row ***************************
            File: mysql-bin.000008
        Position: 107
    Binlog_Do_DB: db_rocky
Binlog_Ignore_DB: mysql
1 row in set (0.01 sec)
 
2.7、在node2、node3指定同步位置
在node53
mysql> change master to master_host='10.211.55.54',master_user='root',master_password='123456',master_log_file='mysql-bin.000008',master_log_pos=107;
Query OK, 0 rows affected (0.05 sec)
 
在node3
 
mysql> change master to master_host='10.211.55.53',master_user='root',master_password='123456',
    -> master_log_file='mysql-bin.000007',master_log_pos=438;
Query OK, 0 rows affected (0.15 sec)
 
注:master_log_file,master_log_pos由上面主服务器查出的状态值中确定
 
2.8、解锁表
 
mysql> unlock tables;
mysql> start slave;
 
2.9、分别在2台机器查看状态
show slave status\G;
如果显示如下,则正常
  Slave_IO_Running: Yes
  Slave_SQL_Running: Yes
3、Lvs配置
3.1 安装lvs
yum install ipvsadm
3.2 编写启动脚本
 
vim /etc/init.d/realserver.sh
#!/bin/bash
#description: Config realserver lo and apply noarp
  
SNS_VIP=10.211.55.200
/etc/rc.d/init.d/functions
case "$1" in
  
start)
      ifconfig eth0:1 $SNS_VIP/24
      /sbin/route add -host $SNS_VIP dev eth0:1
      echo "vip Start OK"
      ifconfig lo:0 $SNS_VIP netmask 255.255.255.255 broadcast $SNS_VIP
      /sbin/route add -host $SNS_VIP dev lo:0
      echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore
      echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce
      echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore
      echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce
      sysctl -p >/dev/null 2>&1
      echo "RealServer Start OK"
      ;;
  
stop)
      ifconfig eth0:1 down
      route del $SNS_VIP >/dev/null 2>&1
      echo "vip Stoped"
      ifconfig lo:0 down
      route del $SNS_VIP >/dev/null 2>&1
      echo "0" >/proc/sys/net/ipv4/conf/lo/arp_ignore
      echo "0" >/proc/sys/net/ipv4/conf/lo/arp_announce
      echo "0" >/proc/sys/net/ipv4/conf/all/arp_ignore
      echo "0" >/proc/sys/net/ipv4/conf/all/arp_announce
      echo "RealServer Stoped"
      ;;
  
*)
  
      echo "Usage: $0 {start|stop}"
      exit 1
esac
exit 0
 
配置开机启动
 
 echo "/etc/init.d/realserver.sh start" >> /etc/rc.d/rc.local
4、配置keepalived
4.1、安装keepalived
  yum install keepalived
 
4.2、配置keepalived.conf
 
 

vim /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
  
        notification_email {
             yangyufans@qq.com
        }
        notification_email_from yangyufans@qq.com
        smtp_server smtp.qq.com
        smtp_connect_timeout 30
        router_id LVS1
}
  
vrrp_sync_group test {
        group {
                loadbalance
        }
}
  
vrrp_instance loadbalance {
        state MASTER
        lvs_sync_daemon_inteface eth0
        virtual_router_id 51
        priority 150
        advert_int 1
  
        authentication {
                auth_type PASS
                auth_pass 1111
        }
  
        virtual_ipaddress {
                10.211.55.200 dev eth0 label eth0:1
        }
}
virtual_server 10.211.55.200 3306 {
        delay_loop 6
        lb_algo rr
        lb_kind DR
        persistence_timeout 20
        protocol TCP
        sorry_server 10.211.55.54 3306
        real_server 10.211.55.53 3306 {
                weight 3
                TCP_CHECK {
                        connect_timeout 3
                        nb_get_retry 3
                        delay_before_retry 3
                        connect_port 3306
                }
        }
}
 
 
在node3上配置keepalived.conf
2个参数不同,其他配置相同
state BACKUP
priority 100
 
chkconfig keepalived on
 
插入图片=============
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Lvs+keepalived+mysql(主从复制)的更多相关文章

  1. Lvs+keepalived+mysql主从热备

    p.MsoNormal,li.MsoNormal,div.MsoNormal { margin: 0cm; margin-bottom: .0001pt; text-align: justify; f ...

  2. LVS+Keepalived+Mysql+主备数据库架构[4台]

    这是一个坑...磨了不少时间.见证自己功力有待提升... 架构图 数据库 1.安装数据库 这块不难, 直接引用:mysql安装 2.数据库主备 这块不难, 直接引用: mysql主备 虚拟VIP 重点 ...

  3. Lvs+Keepalived+MySQL Cluster架设高可用负载均衡Mysql集群

    ------------------------------------- 一.前言 二.MySQL Cluster基本概念 三.环境 四.配置 1.LB-Master及LB-Backup配置 2.M ...

  4. LVS+Keepalived+Mysql+主主数据库架构[2台]

    架构图 安装步骤省略. 158.140 keepalived.conf ! Configuration File for keepalived global_defs { #全局标识模块 notifi ...

  5. Lvs+Keepalived+Mysql

    环境 [root@node1 ~]# cat /etc/redhat-release CentOS Linux release (Core) [root@node1 ~]# uname -a Linu ...

  6. Mysql双主热备+LVS+Keepalived高可用操作记录

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

  7. Lvs+Keepalived实现MySQL高可用

    LVS+Keepalived+MySQL高可用配置 本文所有配置前提是已实现MySQL双主备份(MySQL双主) 安装前的准备: VIP:192.168.0.201 Keepalived: Keepa ...

  8. MySQL 高可用:mysql+Lvs+Keepalived 负载均衡及故障转移

    系统信息: mysql主库 mysql从库 VIP 192.168.1.150 mysql 主主同步都设置 auto-increment-offset,auto-increment-increment ...

  9. 关于lvs+keepalived只加入一台realserver问题

    今天做lvs+keepalived+mysql项目实施方案,在配置lvs+keepalived时都是ok的,但是就只加入第一台realserver.本人也感到很奇怪,lvs+keepalived本人也 ...

随机推荐

  1. fastDFS配置文件 fdfs_client.conf

    # connect timeout in seconds# default value is 30sconnect_timeout=30 # network timeout in seconds# d ...

  2. python实现收邮件判断模块poplib,email

    一.代码 # 输入邮件地址, 口令和POP3服务器地址: import datetime import email import poplib import email.policy from ema ...

  3. (转)微信,QQ这类IM app怎么做——谈谈Websocket

    转:http://www.cocoachina.com/ios/20160527/16482.html 前言 关于我和WebSocket的缘:我从大二在计算机网络课上听老师讲过之后,第一次使用就到了毕 ...

  4. jeecg的$.dialog的一些参数

      jeecg表单弹出框采用的技术是lhgdialog 一.配置全局默认参数 (function(config){ config['extendDrag'] = true; // 注意,此配置参数只能 ...

  5. jeecg 实现lhgDialog窗口传值

    需要在jeecg中的dialog弹框往调用的窗口赋值. 定义内容页调用窗体实例对象接口 var windowapi = frameElement.api ; var W = windowapi.ope ...

  6. ajax 重复提交

    1.一次点击事件触发两次请求,找到的原因是重复引用了同一个.js文件,后台返回来的数据是个页面,在这个页面里面又引用了.js,所以导致一次点击多次请求

  7. msgbox用法

    http://www.w3school.com.cn/vbscript/func_msgbox.asp VBScript MsgBox 函数 VBScript 函数参考手册 定义和用法 MsgBox ...

  8. GDB结合Bochs调试内核

    1. 编译内核 编辑.config文件,相关项目改成如下形式: 1: CONFIG_KGDB=y 2: CONFIG_KGDB_SERIAL_CONSOLE=y 3: CONFIG_MAGIC_SYS ...

  9. MySQL数据库(五)—— 用户管理、pymysql模块

    用户权限管理.pymysql模块 一.用户管理(权限管理) 在MySQL中自带的mysql数据库中有4个表用于用户管理的 # 优先级从高到低 user > db > tables_priv ...

  10. Serializable 和Parcelable 详解

    序列化:为了保存在内存中的各种对象的状态,并可以把保存的对象的状态读出来 安卓中实现序列化的接口有两个,一个是serializable,一个是parcelable. 一.实现序列化: 1.是可以将对象 ...