MySQL双主高可用配置方法解析

  

一、在两台云服务器上分别安装MySQL实例

Mysql01:192.168.0.207

Mysql02:192.168.0.208

vip1:192.168.0.211

vip2:192.168.0.212

(略)

二、在两台服务器上配置主主复制

GRANT REPLICATION SLAVE alt="MySQL双主高可用配置方法解析">

change master to MASTER_HOST='192.168.0.207',

MASTER_USER='dba_repl',

MASTER_PASSWORD='123456',

MASTER_LOG_FILE='mysql-bin.000003',

MASTER_LOG_POS=120

;

三、配置keepalived,这个方案的关键点在于keepalived的配制,两个vrrp_instance在两个主上的优先级相反。

MySQL01:

global_defs {

# Keepalived process identifier

lvs_id MySQL_HA

}

# Script used to check if Proxy is running

vrrp_script check_proxy {

script "killall -0 mysql"

interval 2

weight 3

}

# Virtual interface 1

# The priority specifies the order in which the assigned interface to take over in a failover

vrrp_instance VI_01 {

state MASTER

interface eth0

virtual_router_id 51

priority 100

# The virtual ip address shared between the two loadbalancers

virtual_ipaddress {

192.168.0.211 dev eth0

}

track_script {

check_proxy

}

}

# Virtual interface 2

# The priority specifies the order in which the assigned interface to take over in a failover

vrrp_instance VI_02 {

state MASTER

interface eth0

virtual_router_id 52

priority 102

# The virtual ip address shared between the two loadbalancers

virtual_ipaddress {

192.168.0.212 dev eth0

}

track_script {

check_proxy

}

}

主二:

global_defs {

# Keepalived process identifier

lvs_id MySQL_HA

}

# Script used to check if Proxy is running

vrrp_script check_proxy {

script "killall -0 mysql"

interval 2

weight 3

}

# Virtual interface 1

# The priority specifies the order in which the assigned interface to take over in a failover

vrrp_instance VI_01 {

state MASTER

interface eth0

virtual_router_id 51

priority 102

# The virtual ip address shared between the two loadbalancers

virtual_ipaddress {

10.103.9.211 dev eth0

}

track_script {

check_proxy

}

}

# Virtual interface 2

# The priority specifies the order in which the assigned interface to take over in a failover

vrrp_instance VI_02 {

state MASTER

interface eth0

virtual_router_id 52

priority 100

# The virtual ip address shared between the two loadbalancers

virtual_ipaddress {

192.168.0.212 dev eth0

}

track_script {

check_proxy

}

}

  

MySQL双主高可用配置方法解析