环境信息:
主节点a: 109.188.14.210
主节点b: 109.188.14.205
虚拟ip:109.188.14.201
主主搭建:
mysql添加参数:
log-bin=mysql-bin
auto_increment_increment=2
auto_increment_offset=1
binlog-ignore=mysql
binlog-ignore=information_schema
binlog-ignore=performance_schema
character_set_server=utf8
a及执行,填b机ip
CREATE USER 'cp_user'@'109.188.14.210' IDENTIFIED WITH mysql_native_password BY 'master2018';
GRANT REPLICATION SLAVE ON *.* TO 'cp_user'@'109.188.14.210';
b及执行,填a机ip
CREATE USER 'cp_user'@'109.188.14.205' IDENTIFIED WITH mysql_native_password BY 'master2018';
GRANT REPLICATION SLAVE ON *.* TO 'cp_user'@'109.188.14.205';
a机执行,填b机ip
CHANGE MASTER TO
MASTER_HOST='109.188.14.205',
MASTER_USER='cp_user',
MASTER_PASSWORD='master2018',
MASTER_LOG_FILE='binlog.000006',
MASTER_LOG_POS=688;
start slave;
b机执行,填a机ip
CHANGE MASTER TO
MASTER_HOST='109.188.14.205',
MASTER_USER='cp_user',
MASTER_PASSWORD='master2018',
MASTER_LOG_FILE='binlog.000006',
MASTER_LOG_POS=688;
start slave;
两个节点都执行
tar 解压keepalived包
yum install -y gcc gcc-c++ wget popt-devel openssl openssl-devel
yum install -y libnl libnl-devel libnl3 libnl3-devel
yum install -y libnfnetlink-devel
./configure --sysconf=/etc
make && make install
systemctl enable keepalived.service
cd /etc/keepalived/
cp keepalived.conf.sample keepalived.conf.bak
mv keepalived.conf.sample keepalived.conf
vi keepalived.conf
[root@mysql8182 keepalived]# cat /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
router_id mysql-ha
}
vrrp_instance VI_1 {
state BACKUP
interface eth0
virtual_router_id 210
priority 100 #优先级,高优先级竞选为master
advert_int 1
nopreempt #设置为不抢占 注:这个配置只能设置在backup主机上,而且这个主机优先级要比另外一台高,另一台不要设置这个选项
authentication {
auth_type PASS
auth_pass 123456
}
virtual_ipaddress {
109.188.14.201
}
}
virtual_server 109.188.14.201 3306 {
delay_loop 2
lb_algo rr
lb_kind DR
persistence_timeout 60
protocol TCP
real_server 109.188.14.210 3306 {
weight 1
notify_down /etc/keepalived/mysql.sh
TCP_CHECK {
connect_port 3306
connect_timeout 3
nb_get_retry 2
delay_before_retry 1
}
}
}
[root@mysql8182 keepalived]# cat /etc/keepalived/mysql.sh
#!/bin/bash
pkill keepalived
chmod 777 /etc/keepalived/mysql.sh
副节点配置keepalived.conf文件的时候注意要把
real_server 109.188.14.210 3306改为 real_server 109.188.14.205 3306
virtual_router_id 210 改为virtual_router_id 205
priority 100改为priority 90
去掉nopreempt
两个节点都操作
/mysql/keepalived-2.2.7/bin/keepalived -f /etc/keepalived/keepalived.conf -D
查看状态有三个如下进程: