欢迎光临
我们一直在努力

mysql5.6主主集群自动同步脚本

mysql主主集群中有机器关机等情况导致同步失效,自己写了一个shell脚本,以方便自己以后维护:
脚本内容如下:

#!/bin/bash 
#设置主节点、从节点IP和mysql数据库管理员用户名密码信息 同步用户名密码信息
 _MASTERHOST=192.168.1.207
 _SLAVEHOST=192.168.1.208
 _USER=root
 _MASTERPASD=root
 _SLAVEPASD=root
 _TBUSER=ab
 _TBPASD=123
 
 
#配置从到主的同步
mysql -h $_MASTERHOST -uroot -p$_MASTERPASD -e “flush tables with read lock;”
master_log_file=`mysql -u root -h $_MASTERHOST -p$_MASTERPASD -e “show master status;” | awk ‘NR==2 {print $1}’`
master_log_position=`mysql -u root -h $_MASTERHOST -p$_MASTERPASD -e “show master status;” | awk ‘NR==2 {print $2}’`
mysql -h $_MASTERHOST -uroot -p$_MASTERPASD -e “unlock tables;”
mysql -h $_SLAVEHOST -uroot -p$_SLAVEPASD -e “stop slave;”
mysql -h $_SLAVEHOST -uroot -p$_SLAVEPASD -e “CHANGE MASTER TO MASTER_HOST=’$_MASTERHOST’,MASTER_PORT=3306,MASTER_USER=’$_TBUSER’,MASTER_PASSWORD=’$_TBPASD’,MASTER_LOG_FILE=’$master_log_file’,MASTER_LOG_POS=$master_log_position;”
mysql -h $_SLAVEHOST -uroot -p$_SLAVEPASD -e “start slave;”

#配置的同步
mysql -h $_SLAVEHOST -uroot -p$_SLAVEPASD -e “flush tables with read lock;”
slave_log_file=`mysql -u root -h $_SLAVEHOST -p$_SLAVEPASD -e “show master status;” | awk ‘NR==2 {print $1}’`
slave_log_position=`mysql -u root -h $_SLAVEHOST -p$_SLAVEPASD -e “show master status;” | awk ‘NR==2 {print $2}’`
mysql -h $_SLAVEHOST -uroot -p$_SLAVEPASD -e “unlock tables;”
mysql -h $_MASTERHOST -uroot -p$_MASTERPASD -e “stop slave;”
mysql -h $_MASTERHOST -uroot -p$_MASTERPASD -e “CHANGE MASTER TO MASTER_HOST=’$_SLAVEHOST’,MASTER_PORT=3306,MASTER_USER=’$_TBUSER’,MASTER_PASSWORD=’$_TBPASD’,MASTER_LOG_FILE=’$slave_log_file’,MASTER_LOG_POS=$slave_log_position;”
mysql -h $_MASTERHOST -uroot -p$_MASTERPASD -e “start slave;”

#检查
mysql -h $_MASTERHOST -uroot -p$_MASTERPASD -e “show slave status\G;” | awk ‘$0 ~/Host/ || $0 ~/State/ || $0 ~/Running/’
mysql -h $_SLAVEHOST -uroot -p$_SLAVEPASD -e “show slave status\G;” | awk ‘$0 ~/Host/ || $0 ~/State/ || $0 ~/Running/’

赞(0)
【声明】:本博客不参与任何交易,也非中介,仅记录个人感兴趣的主机测评结果和优惠活动,内容均不作直接、间接、法定、约定的保证。访问本博客请务必遵守有关互联网的相关法律、规定与规则。一旦您访问本博客,即表示您已经知晓并接受了此声明通告。