通过Shell脚本实现CentOS7.5部署MySQL多实例

注:需要mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz这个文件放入到root家目录下

#!/bin/bash

#1创建文件夹
mkdir -p /application/mysql
mkdir -p /data/33{07..10}
#2判断用户是否存在,如不存在则创建mysql用户
grep 'mysql' /etc/passwd
if [ $? -ne 0 ]
then
  useradd mysql >/dev/null 2>&1
fi
#3解压mysql安装包(安装包位置放在/root目录下)
UNZIPPATH=/root
MYSQLNAME=mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz
tar -xf "$UNZIPPATH/$MYSQLNAME" -C /application/
TARFILE=${MYSQLNAME%.*}
mv /application/${TARFILE%.*}/* /application/mysql/


#4添加mysql/bin到环境变量,并初始化mysql数据
echo "PATH=$PATH:/application/mysql/bin" >> /etc/profile

source /etc/profile

yum install -y libaio > /dev/null 2>&1

chown -R mysql. /data/*
chown -R mysql. /application/*
DATAPATH=/data/
for i in `ls /data/`;
do
  mysqld --initialize-insecure --user=mysql --datadir="$DATAPATH$i/data" --basedir=/application/mysql >/dev/null 2>&1
done
chown -R mysql. /data/*

#--------建立配置文件
for i in `ls /data/`;
do
  cat > /data/$i/my.cnf <<EOF
[mysqld]
datadir=/data/$i/data
port=$i
basedir=/application/mysql
socket=/data/$i/mysql.sock
pid-file=/data/$i/mysql.pid
log-error=/data/$i/mysql.log
log-bin=/data/$i/mysql-bin
binlog_format=row
gtid-mode=on
skip-name-resolve
server-id=$i
enforce-gtid-consistency=true
log-slave-updates=1
[mysql]
socket=/data/$i/mysql.sock
EOF
done

#--------建立配置文件
#--------生成启动脚本
for i in `ls /data/`;
do
  cat > /usr/lib/systemd/system/mysqld$i.service <<EOF
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-system.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/application/mysql/bin/mysqld --defaults-file=/data/$i/my.cnf
LimitNOFILE=5000
EOF
done
#--------生成启动脚本
 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值