微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐