|
keepalived+mysql
利用 keepalived 实现 MySQL 数据库的高可用。
由于要做高可用,那么自然就需要 MySQL 双主模式,又因为数据库的特殊性,我们需要特别注意主备间的切换(不是想切就切),这个时候就需要 keepalived 非抢占模式。所以我们需要做:
安装 MySQL 双主(被动)模式,实现数据的冗余备份
安装 keepalived 模式,实现 MySQL 数据库的故障切换
实验拓扑:
两台mysql的安装配置:
yum install mariadb-server -y
下面是 两台mysql双主模式的配置:
vim /etc/my.cnf
log-bin = bin
relay-log => 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'> 确定主:
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'> netstat -tulnp | grep 3306
show master status\G;
.如果change语句有问题就 slave stop;
create user zyx@192.168.2.110> 不用创建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的测试脚本。
|
|
|