1. 本际云推荐 - 专业推荐VPS、服务器,IDC点评首页
  2. 云主机运维
  3. VPS运维

mysql双主加keepalived

MySQL双主加Keepalived

欢迎来到本际云服务器推荐网,我是小编小本本。今天我们来了解一下MySQL双主加Keepalived的配置方法。

mysql双主加keepalived

配置半同步

在192.168.56.11和192.168.56.12上安装插件,开启半同步机制的方法如下:

  • 在192.168.56.11上:install plugin rpl_semi_sync_master SONAME semisync_master.so;
  • 在192.168.56.11上:install plugin rpl_semi_sync_slave SONAME semisync_slave.so;
  • 在my.cnf文件中添加以下配置:
  • log_bin
    server_id=1001
    rpl_semi_sync_master_enabled=1
    rpl_semi_sync_master_timeout=1000
    rpl_semi_sync_slave_enabled=1
    master_info_repository=TABLE;
    relay_log_info_repository=TABLE;
    gtid_mode=ON
    enforce_gtid_consistency=ON

  • 在192.168.56.11和192.168.56.12上创建同步账号。

启动双主

在192.168.56.11和192.168.56.12上启动双主的方法如下:

  • 在192.168.56.11上:CHANGE MASTER TO MASTER_HOST=192.168.56.12, MASTER_USER=sync, MASTER_PASSWORD=sync, MASTER_PORT=3306, MASTER_AUTO_POSITION=1; start slave;
  • 在192.168.56.12上:CHANGE MASTER TO MASTER_HOST=192.168.56.11, MASTER_USER=sync, MASTER_PASSWORD=sync, MASTER_PORT=3306, MASTER_AUTO_POSITION=1; start slave;
  • 在192.168.56.11和192.168.56.12上查看Rpl_semi_sync_master_clients的值是否为1,Rpl_semi_sync_master_status和Rpl_semi_sync_slave_status的值是否都为ON。

安装Keepalived

在192.168.56.11和192.168.56.12上安装Keepalived的方法如下:

  • 安装依赖包。
  • 编译安装Keepalived。
  • 在/etc/keepalived目录下创建keepalived.conf文件。
  • 添加监控MySQL是否存活的脚本。
  • 启动Keepalived服务。

配置文件

在192.168.56.11和192.168.56.12上的keepalived.conf文件配置如下:

192.168.56.11的keepalived.conf:

global_defs {
 router_id KeepAlive_MySQL
}
vrrp_script check_run {
 script “/etc/keepalived/bin/mysql_check.sh”
 interval 30
}
vrrp_sync_group VG1 {
 group {
  VI_1
 }
}
vrrp_instance VI_1 {
 state BACKUP
 interface eth0
 mcast_src_ip 192.168.56.11
 virtual_router_id 51
 priority 100
 advert_int 1
 nopreempt
 authentication {
  auth_type PASS
  auth_pass 1111
 }
 track_script {
  check_run
 }
 virtual_ipaddress {
  192.168.56.13
 }
}

192.168.56.12的keepalived.conf:

global_defs {
 router_id KeepAlive_MySQL
}
vrrp_script check_run {
 script “/etc/keepalived/bin/mysql_check.sh”
 interval 30
}
vrrp_sync_group VG1 {
 group {
  VI_1
 }
}
vrrp_instance VI_1 {
 state BACKUP
 interface eth0
 mcast_src_ip 192.168.56.12
 virtual_router_id 51
 priority 90
 advert_int 1
 nopreempt
 authentication {
  auth_type PASS
  auth_pass 1111
 }
 track_script {
  check_run
 }
 virtual_ipaddress {
  192.168.56.13
 }
}

脚本

在192.168.56.11和192.168.56.12上的mysql_check.sh脚本如下:

#!/bin/bash
./root/.bash_profile
count=1
while true
do
 mysql -uroot -p”xxxxx” -e “show status;” >/dev/null 2>&1
 i=$?
 ps aux|grep mysqld|grep -v grep >/dev/null 2>&1
 j=$?
 if [ $i = 0 ] && [ $j = 0 ]
 then
  exit 0
 else
  if [ $i = 1 ] && [ $j = 0 ]
  then
    exit 0
  else
    if [ $count -gt 5 ]
    then
      break
    fi
    let count++
  continue
  fi
 fi
done
/etc/init.d/keepalived stop

以上就是MySQL双主加Keepalived的配置方法,希望能对您有所帮助。

原创文章,作者:小编小本本,如若转载,请注明出处:https://www.benjiyun.com/yunzhujiyunwei/vps-yunwei/6214.html