keepalived+mysql



keepalived的原理:

利用 keepalived 实现 MySQL 数据库的高可用。 

由于要做高可用,那么自然就需要 MySQL 双主模式,又因为数据库的特殊性,我们需要特别注意主备间的切换(不是想切就切),这个时候就需要 keepalived 非抢占模式。所以我们需要做:

安装 MySQL 双主(被动)模式,实现数据的冗余备份

安装 keepalived  模式,实现 MySQL 数据库的故障切换

两台mysql的安装配置:

yum install mariadb-server -y

下面是 两台mysql双主模式的配置:

vim /etc/my.cnf

log-bin = bin

relay-log = relay-bin

server-id = 1

skip-slave-start = 1

log-bin 是一定要开启的,主要用于主备之间的同步

relay-log 重命名以下也有必要,这个参数可以不配置

两个实例的 server-id 必须配置不一样

skip-slave-start 是为了数据一致性

核心配置:

授权日志读取:

grant replication slave,replication client on *.* to 'repluser'@'192.168.2.89' identified by '123456';

确定主:

CHANGE MASTER TO MASTER_HOST='d-89',MASTER_USER='replication',  MASTER_PASSWORD='123456',MASTER_PORT=3306, MASTER_LOG_FILE='bin.000001',MASTER_LOG_POS=245;

start slave 之后sql线程就好了

用户(replication slave的用户),密码正确一般io线程也正确

测试双主配置是否可以,双主配置以后,后面的授权,只需要在一台机器上面做,就会同步到两台机器上;

然后授权客户端

grant select on *.* to ly@'192.168.2.39' identified by '1';

netstat -tulnp | grep 3306

show master status\G;

.如果change语句有问题就 slave stop;

create user zyx@192.168.2.110 identified by '123456';

不用创建vip的用户,vip只是反向代理


grant 和change master to 这两个命令请help 查看

binlog的位置要在msater上看


keepalived 的配置文件中添加VI—2 vrrp实例id要不一样

vrrp_instance VI_2 {

    state MASTER

    interface ens33

    virtual_router_id 52

    priority 100

    advert_int 1

    authentication {

        auth_type PASS

        auth_pass 11

    }

    virtual_ipaddress {

        192.168.2.110/24 dev ens33 label ens33:1

    }

        track_script {

                mysql

        }

}

实验测试:

宕机一台mysql之后客户端依然可以正常访问。

后期还应该添加mysql的测试脚本。