MySQL+keepalive搭建主从(双主)HA

基础安装较为简单,直接跳过
说明:
主: 192.168.31.69 ens33
从: 192.168.31.234 ens33
vip 192.168.31.133

1.搭建主从同步

1.1从库恢复数据库

1 主库操作(目的为初始状态下主从一致):
2 mysql -uroot -pxxx
3 reset master;
4 mysql -uroot -pxxx --default-character-set=utf8 < /data/backup/all.sql

1.2 master 上创建复制账号

1 mysql -uroot -prootxxx
2 
3 create user  'repl'@'%' identified by '';
4 GRANT REPLICATION SLAVE ON *.* TO 'bak'@'%';
5 flush privileges;

1.3 从库同步主库

1 CHANGE MASTER TO
2 MASTER_HOST='',
3 MASTER_USER='repl',
4 MASTER_PASSWORD='',
5 MASTER_PORT=3306,
6 MASTER_AUTO_POSITION=1;
7 start slave;

1.4 主库同步从库(双主配置)

1 CHANGE MASTER TO
2 MASTER_HOST='',
3 MASTER_USER='repl',
4 MASTER_PASSWORD='',
5 MASTER_PORT=3306,
6 MASTER_AUTO_POSITION=1;
7 start slave;

2 Keepalived 安装配置

2.1安装

 1 1、检查是否安装
 2 ll /usr/local/keepalived
 3 2、安装
 4 cd /tmp
 5 tar -zxvf keepalived-2.0.20.tar.gz
 6 cd keepalived-2.0.20
 7 ./configure --prefix=/usr/local/keepalived
 8 make
 9 make install
10 /usr/local/keepalived/sbin/keepalived -v

2.2修改配置文件

 1 mkdir /etc/keepalived/
 2 cp  /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/
 3 1.keepalived配置文件
 4 
 5 vi /etc/keepalived/keepalived.conf
 6 
 7 vrrp_script vs_mysql_103 {
 8 script "/etc/keepalived/check_mysql.sh" ###检查脚本
 9 interval 10
10 }
11 vrrp_instance VI_103 {
12 state BACKUP ##两台机器都设置为BACKUP
13 # nopreempt ##非抢占模式(默认为抢占模式,MASTER恢复后抢占vip)
14 interface ens33 ##发送VRRP包的网卡,这里配置为vip网卡
15 virtual_router_id 7 ##路由组(两节点设置为一样)
16 priority 100 ##优先级
17 unicast_src_ip 192.168.31.234 ##单播本地地址
18 unicast_peer { ##单播设置(此处为收不到组播vrrp包所以设置)
19 192.168.31.69 ##目的IP
20 }
21 advert_int 5
22 authentication {
23 auth_type PASS ##身份验证
24 auth_pass 1314 ##密码
25 }
26 track_script {
27 vs_mysql_103 ##调用MySQL脚本
28 }
29 virtual_ipaddress {
30 192.168.31.133 ##vip
31 }
32 }

从库只需将上述配置中`priority 100`改为`priority 99`

tcpdump -i ens33 vrrp -n 抓包查看是否正常

 

posted @ 2023-12-15 14:15  guapisama  阅读(168)  评论(0)    收藏  举报