MySQL主从自动配置脚本

通过yum安装mariadb,并配置MySQL主从服务器
主服务器:192.168.10.11
从服务器:192.168.10.12

#!/bin/bash
#====================================================
# Author: Mr.Song
# Create Date: 2019-02-21
# Description: auto config MySQL master&slave
#====================================================
MYSQL_PASSWORD="123456"
MASTER_HOST="192.168.10.11"
SLAVE_HOST="192.168.10.12"
SYNC_USER="MySQL_SYNC_USER"
SYNC_USER_PASS="123456"

yum install -y mariadb mariadb-server mariadb-devel

if [ $? -eq 0 ];then
    sed -i '/socket/a\server-id=1\nlog-bin=mysql-bin' /etc/my.cnf
    systemctl start mariadb
else
    exit 1
fi
cat > master.sql <<- EOF
UPDATE mysql.user SET Password=PASSWORD('$MYSQL_PASSWORD') WHERE User='root';
DELETE FROM mysql.user WHERE User='';
DROP DATABASE IF EXISTS test;
DELETE FROM mysql.db WHERE Db='test' OR Db='test\\\_%';
DELETE FROM mysql.user WHERE User='root' AND Host NOT IN ('localhost', '127.0.0.1', '::1');
grant replication slave on *.* to '$SYNC_USER'@'%' identified by '$SYNC_USER_PASS';
FLUSH PRIVILEGES;
EOF
mysql -uroot  < master.sql

SLAVE_LOG_FILE=`mysql -uroot -p111111 -e "show master status;" |grep mysql |awk '{print $1}'`
SLAVE_LOG_POS=`mysql -uroot -p111111 -e "show master status;" |grep mysql |awk '{print $2}'`
cat > slave.sh <<- END
#!/bin/bash
MYSQL_PASSWORD="123456"
MASTER_HOST="192.168.10.11"
SLAVE_HOST="192.168.10.12"
SYNC_USER="MySQL_SYNC_USER"
SYNC_USER_PASS="123456"

yum install -y mariadb mariadb-server mariadb-devel

if [ $? -eq 0 ];then
    sed -i '/socket/a\server-id=2\nlog-bin=mysql-bin' /etc/my.cnf
    systemctl start mariadb
else
    exit 1
fi
cat > slave.sql <<- EOF
UPDATE mysql.user SET Password=PASSWORD('$MYSQL_PASSWORD') WHERE User='root';
DELETE FROM mysql.user WHERE User='';
DROP DATABASE IF EXISTS test;
DELETE FROM mysql.db WHERE Db='test' OR Db='test\\\\_%';
DELETE FROM mysql.user WHERE User='root' AND Host NOT IN ('localhost', '127.0.0.1', '::1');
change master to master_host='$MASTER_HOST',master_user='$SYNC_USER',master_password='$SYNC_USER_PASS',master_log_file='$SLAVE_LOG_FILE',master_log_pos=$SLAVE_LOG_POS;
slave start;
FLUSH PRIVILEGES;
EOF
mysql -uroot  < slave.sql
mysql -uroot -p111111 -e 'show slave status\G'|grep Slave
END
scp slave.sh $SLAVE_HOST:/root/
ssh $SLAVE_HOST  bash -x /root/slave.sh

转载于:https://blog.51cto.com/8460152/2353170

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值