mysql主从复制一键安装

#########position方式安装并可自定义从库延时同步时间######################

#!/bin/bash
###本脚本主从机器所使用的的管理者root的密码一致
###应该在从机上提取授权好远程可登录用户
####管理者
admin="root"
####密码
passwd="111"
####从ip
farip="192.168.100.15"
####主ip
masterip="192.168.100.10"
#####授权
read -p "请输入从库需要延迟多长时间同步:
" delytime
if [[ "${delytime}" =~ ^[0-9]+$ ]]
then
mysql -u${admin} -p${passwd} -e "grant replication slave on *.* to repl@'%' identified by '111';" 2> /dev/null
masterfile=`mysql -u${admin} -p${passwd} -e "show master status;" 2> /dev/null | grep -Eo "mysql-bin.[0-9]{6}"`
begin=`mysql -u${admin} -p${passwd} -e "show master status;" 2> /dev/null | grep -Eo "[^.0][0-9]+" | awk '{print $1}'`
cat > /tmp/myzc.sql <<EOF
CHANGE MASTER TO
MASTER_HOST="${masterip}",
MASTER_USER="repl",
MASTER_PASSWORD="111",
MASTER_PORT=3306,
MASTER_LOG_FILE="${masterfile}",
MASTER_LOG_POS=${begin},
MASTER_CONNECT_RETRY=10;
EOF
mysql -u${admin} -p${passwd} -h ${farip} -e "source /tmp/myzc.sql" 2> /dev/null
mysql -u${admin} -p${passwd} -h ${farip} -e "CHANGE MASTER TO MASTER_DELAY = ${delytime};" 2> /dev/null
mysql -u${admin} -p${passwd} -h ${farip} -e "start slave;" 2> /dev/null
mysql -u${admin} -p${passwd} -h ${farip} -e "show slave status\G" 2> /dev/null | grep -Eo "Slave_[a-Z]+_Running:[ ][a-Z]+"
else
echo "输入错误"
fi
 

######gtid方式安装##################################

#!/bin/bash
###本脚本主从机器所使用的的管理者root的密码一致
###应该在从机上提取授权好远程可登录用户
####管理者
admin="root"
####密码
passwd="111"
####从ip
farip="192.168.100.15"
####主ip
masterip="192.168.100.10"
#####授权
read -p "请输入从库需要延迟多长时间同步:
" delytime
if [[ "${delytime}" =~ ^[0-9]+$ ]]
then
mysql -u${admin} -p${passwd} -e "grant replication slave on *.* to repl@'%' identified by '123';" 2> /dev/null
cat > /tmp/myzc.sql <<EOF
CHANGE MASTER TO
MASTER_HOST="${masterip}",
MASTER_USER="repl",
MASTER_PASSWORD="123",
MASTER_AUTO_POSITION=1;
EOF
mysql -u${admin} -p${passwd} -h ${farip} -e "source /tmp/myzc.sql" 2> /dev/null
mysql -u${admin} -p${passwd} -h ${farip} -e "CHANGE MASTER TO MASTER_DELAY = ${delytime};" 2> /dev/null
mysql -u${admin} -p${passwd} -h ${farip} -e "start slave;" 2> /dev/null
mysql -u${admin} -p${passwd} -h ${farip} -e "show slave status\G" 2> /dev/null | grep -Eo "Slave_[a-Z]+_Running:[ ][a-Z]+"
else
echo "输入错误"
fi

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值