keepalived+mysql主+主

实验目的:实现数据备份,防止数据丢失,或出错,解决服务器的单点故障

两个mysql服务器+keepalived

192.168.100.111 centos7

192.168.100.222 centos6

1)安装MYSLQ源码安装  、yum安装均可、yum安装路径会在/var/lib/mysql/ 

192.168.100.111

yum -y install ntp       //主MYSQL安装时间同步器 防止时间不一样造成数据丢失

vim /etc/ntpd.conf

添加

server 127.127.1.0

fudge  127.127.1.0 startum 8

启动service ntpd start

配置/etc/my.cnf

vim  /etc/my.cnf

[mysqld]

log-bin=mysql-bin
log-slave-updates=true  //开启从日志更新

server-id = 1  主的ID,可以随便设置,但是不要与任何服务器发生冲突  、所有的默认是1

service mysqld restart

登陆mysql  、  mysql -uroot -p123123

创建myslave账号,并授权

grant replication slave   on  *.*  to  'myslave'@'192.168.100.%' identified by '123123'; //授权允许操作所有给myslave用户,所有100网段的IP  密码为123123

flush  privileges;  //生成一下

show master status;  查看当前用的二进制文件 配置从要用File  Position

service mysqld restart   

主配置完成 

从:192.168.100.222

MYSQL安装时间同步器,yum -y install ntpdate

ntpdate  192.168.100.111      //要同步谁 对方的IP

修改/etc/my.cnf

[mysqld]

relay-log=relay-log-bin    //传递日志,前缀为relay-log-bin
relay-log-index=slave-relay-bin.index    //传递索引文件

log-bin=mysql-bin      //开启二进制日志

server-id = 2   //同理 随便设置 不可以一样

service mysqld restart

登陆MYSQL, mysql -uroot -p123123 

change  master  to  master_host='192.168.100.111',master_user='myslave',master_password='123456',master_log_file='主服务器的File、mysql-bin.000007',master_log_pos='Position、275';

master_host 为主服务器的IP  master_user为主服务器的myslave用户

start  slave;     开启从服务

show slave status\G;   //查看当前状态

 

Slave_IO_Running: Yes  
Slave_SQL_Running: Yes

 

两项都是yes,代表从服务成功

可能出现的问题IO=no 一般都是IO的问题

第一授权可能出问题 、第二/etc/my.cnf配置文件有问题

以上是主从服务器。  以下是主主,一台既是主也是从  另一个既主也是从。按照上面的反过来在来一遍即可

现在配置当前是从在添加主 

192.168.100.222

vim /etc/my.cnf

[mysqld]

log-bin=mysql-bin
log-slave-updates=true  //开启从日志更新

server-id  //不用更改

重启服务   service  mysqld restart

登陆mysql  、  mysql -uroot -p123123

创建myslave账号,并授权

grant replication slave   on  *.*  to  'myslave'@'192.168.100.%' identified by '123123'; //授权允许操作所有给myslave用户,所有100网段的IP  密码为123123

flush  privileges;  //生成一下

show master status;  查看当前用的二进制文件 配置从要用File  Position

service mysqld restart   

从+主 配置完成 

配置主+从 192.168.100.111

修改/etc/my.cnf

[mysqld]

relay-log=relay-log-bin    //传递日志,前缀为relay-log-bin
relay-log-index=slave-relay-bin.index    //传递索引文件

log-bin=mysql-bin      //开启二进制日志

server-id    //不变

service mysqld restart

登陆MYSQL, mysql -uroot -p123123 

change  master  to  master_host='192.168.100.222',master_user='myslave',master_password='123456',master_log_file='主服务器的File、mysql-bin.000006',master_log_pos='Position、321';

master_host 为(从上的主的服务器)的IP  master_user为(从上的主)服务器的myslave用户  

start  slave;     开启从服务

show slave status\G;   //查看当前状态

 Slave_IO_Running: Yes  

Slave_SQL_Running: Yes

完成主主

 

配置keepalived 实现高可用

在主mysql服务器配置 

yum  -y install  keepalived

cp  /etc/keepalived/keepalived.conf    /etc/keepalived/keepalived.conf.$(date +%F)

vim  /etc/keepalived.confvrrp_instance VI_1 {                                         #实例1

    state MASTER                                             #状态为主
    interface ens33                                            #绑定网卡
    virtual_router_id 11                                      #   id 号,主从一致
    priority 100                                                   #优先级为100
    advert_int 1
    #nopreempt                                                  #非抢占模式
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {                                         #虚拟ip地址
        192.168.100.123
    }
}
virtual_server 192.168.100.111 3306  {                  
     delay_loop 2                                                  #间隔2秒检查真实服务器状态 
     lb_algo rr                                                     #负载调度算法,rr 轮询  
     lb_kind DR                                                     #设置LVS实现负载均衡的机制,可以NAT.TUN.DR
     protocol TCP  
     real_server 192.168.100.111 3306  {                        #真实服务器 ,也就是主mysql服务器
         weight 3  
         TCP_CHECK {  
             connect_timeout 10    #timeout    //10秒无响应超时
             nb_get_retry 3       #conect times to try to connect   //重复次数
             delay_before_retry 3   #interval of retry  //两次重试的间隔为3秒
             connect_port 3306    # check mysql port  //测试连接的端口
         }
     }  
}

启动服务,service  keepalived  start

 

在从服务器192.168.100.222

在从mysql服务器配置 

yum  -y install  keepalived

cp  /etc/keepalived/keepalived.conf    /etc/keepalived/keepalived.conf.$(date +%F)

vim  /etc/keepalived.confvrrp_instance VI_1 {                                         #实例1

    state SLAVE                                                #状态为从
    interface ens33                                            #绑定网卡
    virtual_router_id 11                                      #   id 号,主从一致
    priority 90                                                    #优先级为90
    advert_int 1
    #nopreempt                                                  #非抢占模式
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {                                         #虚拟ip地址
        192.168.100.123
    }
}
virtual_server 192.168.100.222 3306  {                  
     delay_loop 2                                                  #间隔2秒检查真实服务器状态 
     lb_algo rr                                                     #负载调度算法,rr 轮询  
     lb_kind DR                                                     #设置LVS实现负载均衡的机制,可以NAT.TUN.DR
     protocol TCP  
     real_server 192.168.100.222 3306  {                        #真实服务器 ,也就是主mysql服务器
         weight 3  
         TCP_CHECK {  
             connect_timeout 10    #timeout    //10秒无响应超时
             nb_get_retry 3       #conect times to try to connect   //重复次数
             delay_before_retry 3   #interval of retry  //两次重试的间隔为3秒
             connect_port 3306    # check mysql port  //测试连接的端口
         }
     }  
}

启动服务,service  keepalived  start

 

posted @ 2018-08-09 22:05  thomes  阅读(142)  评论(0)    收藏  举报