基于mysql-5.7.35-el7-x86_64.tar主从自动安装脚本

#!  /bin/bash
#脚本运行环境:
#关闭防火墙
#准备两台虚拟机做从库和主库
#确保主库和从库 /opt/目录下有MySQL安装包(mysql-5.7.35-el7-x86_64.tar)
#主库从库能够基于RSA使用ssh免密登录

#互相免密登录方法:
#主库:ssh-keygen -t rsa 
#ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.175.148

#试验是否能主库能免密登录从库:ssh root@192.168.175.148

#截取IP地址
#ifconfig | awk -F " " 'NR==2{print $2}'(这个命令用不上。。)


#问一下你想怎样?
read -p "What kind of installs do you want? 
Please Press: 
A for common install 
B for guolv(DB250) install 
C for yanshi 300s install     :" str

if test -z "$str"
then
        echo "You must input A or  B or C !"
        exit 1
fi

case $str in
       A)
echo "你选择了普通安装"
#先安装主库
#首先移除历史环境,否则影响mysqld的安装
yum remove mariadb-libs -y

#安装环境,否则mysql输入显示error while loading shared libraries: libncurses.so.5: cannot open shared object file
yum install libncurses* -y

#创建用户和组
useradd mysql -s /sbin/nologin

#创建binlog目录
mkdir -p /data/binlog

#创建数据储存目录
mkdir -p /data/mysqldata

##创建日志目录
mkdir -p /var/log/mysql

##设置权限
chown mysql:mysql -R /data/binlog
chown mysql:mysql -R /data/mysqldata
chown mysql:mysql -R /var/log/mysql

#增加环境变量
#echo 'export PATH=/usr/local/mysql/bin:$PATH' >> /etc/profile
#source /etc/profile

##到放安装包的目录
cd /opt/

echo "loading... please wait a moment ###########################"
##解压tar包
tar -xvf mysql-5.7.35-el7-x86_64.tar

##删除tar包,因为gunzip mysql-5.7.35-el7-x86_64.tar.gz解压之后,也有个包叫mysql-5.7.35-el7-x86_64.tar,不删要手动覆盖
rm -rf mysql-5.7.35-el7-x86_64.tar

##再次确认安装gzip命令
yum install -y gzip

echo "loading... please wait a moment ###########################"
##解压.gz包
gunzip mysql-5.7.35-el7-x86_64.tar.gz

echo "loading... please wait a moment ###########################"

#解压tar包,!!注意这不是之前的tar包!!只是和之前同名
tar -xvf mysql-5.7.35-el7-x86_64.tar

echo "loading... please wait a moment ###########################"

#解压mysql-5.7.35-el7-x86_64.tar后得到一个目录,将此目录移动到/usr/local/下,并命名为mysql
mv mysql-5.7.35-el7-x86_64 /usr/local/mysql

##修改所属用户和组为mysql
chown mysql:mysql -R /usr/local/mysql

##初始化数据库(不生成临时密码)
/usr/local/mysql/bin/mysqld --initialize-insecure  --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysqldata

##配置文件 /etc/my.cnf
cat >/etc/my.cnf <<EOF
[mysqld]
user=mysql
basedir=/usr/local/mysql
datadir=/data/mysqldata
#注意id和主库不能一样
server_id=6
log-error=/var/log/mysql/error.log
pid-file=/data/mysqldata/mysql.pid
socket=/tmp/mysql.sock
port=3306
#主库开binlog
log_bin=/data/binlog/mysql-bin
EOF

##启动mysql服务
/usr/local/mysql/support-files/mysql.server start

#复制启动脚本生产系统命令
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld

#做一个软连接,LINUX默认命令放在/usr/bin下,不做mysql命令要加绝对路径
ln -s /usr/local/mysql/bin/mysql /usr/bin

#关闭防火墙
systemctl stop firewalld

#主库建立复制用户:
mysql -uroot -e "grant replication slave on *.* to repl@'%' identified by '123';"

#######################
#主库远程登录192.168.175.148安装从库
ssh root@192.168.175.148   <<END

#移除历史环境
yum remove mariadb-libs -y

#安装环境
yum install libncurses* -y

useradd mysql -s /sbin/nologin

mkdir -p /data/mysqldata
mkdir -p /var/log/mysql
mkdir -p /data/binlog

chown mysql:mysql -R /data/mysqldata
chown mysql:mysql -R /var/log/mysql
chown mysql:mysql -R /data/binlog

cd /opt/

tar -xvf mysql-5.7.35-el7-x86_64.tar
rm -rf mysql-5.7.35-el7-x86_64.tar
yum install -y gzip

echo "loading... please wait a moment ###########################"
gunzip mysql-5.7.35-el7-x86_64.tar.gz
echo "loading... please wait a moment ###########################"
tar -xvf mysql-5.7.35-el7-x86_64.tar
echo "loading... please wait a moment ###########################"
mv mysql-5.7.35-el7-x86_64 /usr/local/mysql

chown mysql:mysql -R /usr/local/mysql

/usr/local/mysql/bin/mysqld --initialize-insecure  --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysqldata

##配置文件 /etc/my.cnf
cat >/etc/my.cnf <<EOF
[mysqld]
user=mysql
basedir=/usr/local/mysql
datadir=/data/mysqldata
#注意id和主库不能一样
server_id=7
log-error=/var/log/mysql/error.log
pid-file=/data/mysqldata/mysql.pid
socket=/tmp/mysql.sock
port=3306
#从库开不开binlog都行
log_bin=/data/binlog/mysql-bin
EOF

/usr/local/mysql/support-files/mysql.server start

cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld

ln -s /usr/local/mysql/bin/mysql /usr/bin

#关闭防火墙
systemctl stop firewalld

mysql -uroot -e "CHANGE MASTER TO MASTER_HOST='192.168.175.128',MASTER_USER='repl',MASTER_PASSWORD='123',MASTER_PORT=3306,MASTER_LOG_FILE='mysql-bin.000001',MASTER_LOG_POS=154,MASTER_CONNECT_RETRY=10;"
mysql -uroot -e "start slave;"

END
;;
B)
echo "你选择了过滤DB250库的安装"
#先安装主库
yum remove mariadb-libs -y
yum install libncurses* -y
useradd mysql -s /sbin/nologin
mkdir -p /data/binlog
mkdir -p /data/mysqldata
mkdir -p /var/log/mysql
chown mysql:mysql -R /data/binlog
chown mysql:mysql -R /data/mysqldata
chown mysql:mysql -R /var/log/mysql

cd /opt/

tar -xvf mysql-5.7.35-el7-x86_64.tar

rm -rf mysql-5.7.35-el7-x86_64.tar

yum install -y gzip


echo "loading... please wait a moment ###########################"
gunzip mysql-5.7.35-el7-x86_64.tar.gz


echo "loading... please wait a moment ###########################"

tar -xvf mysql-5.7.35-el7-x86_64.tar

echo "loading... please wait a moment ###########################"

mv mysql-5.7.35-el7-x86_64 /usr/local/mysql

chown mysql:mysql -R /usr/local/mysql

/usr/local/mysql/bin/mysqld --initialize-insecure  --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysqldata

##配置文件 /etc/my.cnf
cat >/etc/my.cnf <<EOF
[mysqld]
user=mysql
basedir=/usr/local/mysql
datadir=/data/mysqldata
#注意id和主库不能一样
server_id=6
log-error=/var/log/mysql/error.log
pid-file=/data/mysqldata/mysql.pid
socket=/tmp/mysql.sock
port=3306
#主库开binlog
log_bin=/data/binlog/mysql-bin
#过滤DB250库
binlog_ignore_db = DB250
EOF

/usr/local/mysql/support-files/mysql.server start

cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld

ln -s /usr/local/mysql/bin/mysql /usr/bin

systemctl stop firewalld

mysql -uroot -e "grant replication slave on *.* to repl@'%' identified by '123';"

#######################
#主库远程登录192.168.175.148安装从库
ssh root@192.168.175.148 <<END

yum remove mariadb-libs -y

yum install libncurses* -y

useradd mysql -s /sbin/nologin

mkdir -p /data/mysqldata
mkdir -p /var/log/mysql
mkdir -p /data/binlog

chown mysql:mysql -R /data/binlog
chown mysql:mysql -R /data/mysqldata
chown mysql:mysql -R /var/log/mysql

cd /opt/

tar -xvf mysql-5.7.35-el7-x86_64.tar

rm -rf mysql-5.7.35-el7-x86_64.tar

yum install -y gzip

echo "loading... please wait a moment ###########################"

gunzip mysql-5.7.35-el7-x86_64.tar.gz

echo "loading... please wait a moment ###########################"

tar -xvf mysql-5.7.35-el7-x86_64.tar

echo "loading... please wait a moment ###########################"

mv mysql-5.7.35-el7-x86_64 /usr/local/mysql

chown mysql:mysql -R /usr/local/mysql

/usr/local/mysql/bin/mysqld --initialize-insecure  --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysqldata

##配置文件 /etc/my.cnf
cat >/etc/my.cnf <<EOF
[mysqld]
user=mysql
basedir=/usr/local/mysql
datadir=/data/mysqldata
#注意id和主库不能一样
server_id=7
log-error=/var/log/mysql/error.log
pid-file=/data/mysqldata/mysql.pid
socket=/tmp/mysql.sock
port=3306
#从库开不开binlog都行
log_bin=/data/binlog/mysql-bin
EOF

/usr/local/mysql/support-files/mysql.server start

cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld

ln -s /usr/local/mysql/bin/mysql /usr/bin

#关闭防火墙
systemctl stop firewalld

#mysql -uroot -e "help change master to;"
mysql -uroot -e "CHANGE MASTER TO MASTER_HOST='192.168.175.128',MASTER_USER='repl',MASTER_PASSWORD='123',MASTER_PORT=3306,MASTER_LOG_FILE='mysql-bin.000001',MASTER_LOG_POS=154,MASTER_CONNECT_RETRY=10;"
mysql -uroot -e "start slave;"
#mysql -uroot -e "show slave status\G"

END
;;
C)


echo "你选择了从库延时300秒安装"
#先安装主库
yum remove mariadb-libs -y
yum install libncurses* -y

useradd mysql -s /sbin/nologin

mkdir -p /data/binlog
mkdir -p /data/mysqldata
mkdir -p /var/log/mysql

chown mysql:mysql -R /data/binlog
chown mysql:mysql -R /data/mysqldata
chown mysql:mysql -R /var/log/mysql


##到放安装包的目录
cd /opt/

tar -xvf mysql-5.7.35-el7-x86_64.tar

rm -rf mysql-5.7.35-el7-x86_64.tar

yum install -y gzip


echo "loading... please wait a moment ###########################"
gunzip mysql-5.7.35-el7-x86_64.tar.gz


echo "loading... please wait a moment ###########################"


tar -xvf mysql-5.7.35-el7-x86_64.tar

echo "loading... please wait a moment ###########################"

mv mysql-5.7.35-el7-x86_64 /usr/local/mysql

chown mysql:mysql -R /usr/local/mysql

/usr/local/mysql/bin/mysqld --initialize-insecure  --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysqldata

##配置文件 /etc/my.cnf
cat >/etc/my.cnf <<EOF
[mysqld]
user=mysql
basedir=/usr/local/mysql
datadir=/data/mysqldata
#注意id和主库不能一样
server_id=6
log-error=/var/log/mysql/error.log
pid-file=/data/mysqldata/mysql.pid
socket=/tmp/mysql.sock
port=3306
#主库开binlog
log_bin=/data/binlog/mysql-bin
EOF

/usr/local/mysql/support-files/mysql.server start

cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld

ln -s /usr/local/mysql/bin/mysql /usr/bin

systemctl stop firewalld

mysql -uroot -e "grant replication slave on *.* to repl@'%' identified by '123';"

#######################
#主库远程登录192.168.175.148安装从库
ssh root@192.168.175.148 <<END

#移除历史环境
yum remove mariadb-libs -y

#安装环境
yum install libncurses* -y

useradd mysql -s /sbin/nologin

mkdir -p /data/mysqldata
mkdir -p /var/log/mysql
mkdir -p /data/binlog

chown mysql:mysql -R /data/binlog
chown mysql:mysql -R /data/mysqldata
chown mysql:mysql -R /var/log/mysql

cd /opt/

tar -xvf mysql-5.7.35-el7-x86_64.tar

rm -rf mysql-5.7.35-el7-x86_64.tar

yum install -y gzip

echo "loading... please wait a moment ###########################"

gunzip mysql-5.7.35-el7-x86_64.tar.gz

echo "loading... please wait a moment ###########################"

tar -xvf mysql-5.7.35-el7-x86_64.tar

echo "loading... please wait a moment ###########################"

mv mysql-5.7.35-el7-x86_64 /usr/local/mysql

chown mysql:mysql -R /usr/local/mysql

/usr/local/mysql/bin/mysqld --initialize-insecure  --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysqldata

##配置文件 /etc/my.cnf
cat >/etc/my.cnf <<EOF
[mysqld]
user=mysql
basedir=/usr/local/mysql
datadir=/data/mysqldata
#注意id和主库不能一样
server_id=7
log-error=/var/log/mysql/error.log
pid-file=/data/mysqldata/mysql.pid
socket=/tmp/mysql.sock
port=3306
#从库开不开binlog都行
log_bin=/data/binlog/mysql-bin
EOF

/usr/local/mysql/support-files/mysql.server start

cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld

ln -s /usr/local/mysql/bin/mysql /usr/bin

#关闭防火墙
systemctl stop firewalld

#mysql -uroot -e "help change master to;"
mysql -uroot -e "CHANGE MASTER TO MASTER_DELAY = 300  MASTER_HOST='192.168.175.128',MASTER_USER='repl',MASTER_PASSWORD='123',MASTER_PORT=3306,MASTER_LOG_FILE='mysql-bin.000001',MASTER_LOG_POS=154,MASTER_CONNECT_RETRY=10;"
mysql -uroot -e "start slave;"
#mysql -uroot -e "show slave status\G"

END
;;
*)
echo "You can only input A or  B or C"
;;
esac
exit 0

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值