MySQL5.7搭建脚本

该脚本用于在CentOS7环境下自动化安装MySQL5.7,包括环境检查、依赖安装、防火墙与SELinux设置、文件解压、用户授权、数据目录创建、配置文件初始化及服务启动。通过设置环境变量,实现一键部署。
摘要由CSDN通过智能技术生成

一、背景

1.centos7
2.MySQL5.7.26
3.在根目录上创建tools目录,将MySQL的软件和脚本放至tools目录。
4.最好加上环境变量

二、shell脚本代码

#!/usr/bin/bash
#Author:xuan
#Function:MySQL搭建
#Version:V2.0
#Update:2020-11-14

base=/application/mysql

enc(){
		#检查是否是root用户登录
	if [ $LOGNAME != root ];then
			echo "Please use the root account operation."
			exit 1
	fi

	yum install tree nmap dos2unix lrzsz nc lsof wget tcpdump htop iftop iotop sysstat nethogs -y &>/dev/null
	yum install psmisc net-tools bash-completion vim-enhanced -y &>/dev/null
	yum install -y libaio-devel &>/dev/null

	#检查防火墙是否关闭
	echo "防火墙检查"
	systemctl stop firewalld.service
	systemctl disable firewalld.service
	echo "防火墙已关闭"

	#检查selinux
	echo "检查selinux"
	setenforce 0
	sed -ri 's/^SEL.*$/SELINUX=disable/g' /etc/selinux/config
	echo "selinux已关闭"

	#检查是否有mariadb,有就卸载
	echo “mariadb 检查”
	um=`rpm -qa|grep mariadb`
	if [ $? =  0 ] ;then
			yum -y remove $um &>/dev/null
			echo "mariadb 移除成功!"
	else
			echo "mariadb不存在!"
	fi
	#创建文件目录、授权,并且将文件解压进目录下
	if [ ! -d $base ];then
		mkdir -p $base
	else
		rm -rf $base/*
	fi
	mysql=`ls -l /tools |grep 'tar'|awk '{print $NF}'`
	tar xf /tools/$mysql
	my=`ls -l /tools |grep '5.7'|awk '{print $NF}'|grep -v 'tar'`
	mv /tools/$my/* $base/
	rm -rf /tools/$my

	
	#创建用户
	egrep "^mysql" /etc/passwd >& /dev/null
	if [ $? -ne 0 ];then
		useradd -s /sbin/nologin mysql
	fi
		
	#授权
	chown -R mysql.mysql $base
}

echo "MySQL5.7安装程序"
read -p "是否检查环境,默认检查(Y/N): " examine
if [ ! $examine == "N" ];then
	enc
fi


echo "开始安装MySQL........"
read -p "请输入端口号:" port
read -p "请输入sever_id:" server_id
echo "正在安装安装MySQL,请稍后......"


data=/data/mysql/$port
if [ -d $data ];then
	rm -rf $data
	mkdir -p $data
	echo "创建文件"
else
	mkdir -p $data
fi

#授权
chown -R mysql.mysql /data/mysql

#初始化
/application/mysql/bin/mysqld --initialize-insecure  --user=mysql --basedir=$base --datadir=$data &>/dev/null

#初始化配置文件
cat >> $data/my.cnf <<EOF
[mysqld]
user=mysql
basedir=$base
datadir=$data
server_id=$server_id
log-error=$data/log.err
port=$port
socket=/tmp/mysql$port.sock
[mysql]
socket=/tmp/mysql$port.sock
port=3306 
EOF


#systemctl管理mysql
syst=/etc/systemd/system/mysqld$port.service
if [ -f "$syst" ];then
	rm -rf $syst
fi

cat >> $syst <<EOF
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=$base/bin/mysqld --defaults-file=$data/my.cnf
LimitNOFILE = 5000
EOF

systemctl daemon-reload
systemctl start mysqld$port
if [ $? = 0 ] ;then
	echo "mysql5.7 搭建成功!"
else
	echo "搭建有问题"
fi
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值