简易Shell脚本安装redis/mysql/nginx-Centos7系统-无网版

简要说明

目前支持的安装版本

Nginx:1.9.8

Mysql:5.7 、8.0.30

Redis:7.0.5

USER=root
MYSQL_PASSWORD=Bacmp_123
MYSQL_VERSION=8

脚本中的用户、mysql密码、mysql版本为可配置项

版本可选5.7或者8.0.30-需要5.7版本【MYSQL_VERSION=8 改成 MYSQL_VERSION=5】
密码必须包含:大小写字母、数字和特殊符号,并且长度不能少于8位。

开始安装

先下载收集好的redis/mysql/nginx和各个依赖

工具包

链接:https://pan.baidu.com/s/1CxBAotQ0-U6bVaNuU1Pi-A?pwd=TOOL
提取码:TOOL

创建目录-然后通过FTP软件把工具包传到该目录下(此类软件网上有很多)

# 创建并进入该目录-把工具包传到该目录下
mkdir /easy
cd /easy

# 解压工具包-解压出来后就得到tool文件
tar -zvxf centos7-tool.tar.gz

在/easy目录下创建&编辑.sh文件

# 脚本必须和tool在同级目录下
vi tool.sh

把脚本内容复制进.sh文件-然后保存

完整脚本如下

#!/bin/sh
USER=root
MYSQL_PASSWORD=Bacmp_123
MYSQL_VERSION=8
SH_FILE_PATH=$(dirname "$(echo \"$0\" | xargs readlink -f)")
LIB_FILE_PATH=$SH_FILE_PATH/tool/lib
MYSQL_FILE_PATH=$SH_FILE_PATH/tool/mysql
REDIS_FILE_PATH=$SH_FILE_PATH/tool/redis
NGINX_FILE_PATH=$SH_FILE_PATH/tool/nginx
ZLIB_FILE=zlib-1.2.7-18
ZLIB_SYSTEM=$(rpm -qa | grep -E 'zlib-[0-9]+' | sed 's/\.[^\.]*\.[^\.]*$//')
echo "正在检查工具安装-请稍后"
echo "============================================================"
rpm -qa | grep mysql &>/dev/null
if [ $? -ne 0 ];then
	echo "本机没有安装MYSQL-正在尝试安装"
	rpm -e mariadb-libs --nodeps &>/dev/null
	rpm -qa | grep net-tools &>/dev/null
	if [ $? -ne 0 ];then
		echo "-->依赖-net-tools-缺少-正在安装"
		rpm -ivh $LIB_FILE_PATH/mysql-lib/net-tools-2.0-0.25.20131004git.el7.x86_64.rpm
		if [ $? -eq 0 ];then
			echo "-->依赖-net-tools-安装成功"
		else
			echo "-->依赖-net-tools-安装失败"
		fi
	else
		echo "-->依赖-net-tools-本机已安装"
	fi
	rpm -qa | grep perl &>/dev/null
	if [ $? -ne 0 ];then
		echo "-->依赖-perl-缺少-正在安装"
		rpm -ivh $LIB_FILE_PATH/mysql-lib/perl-5.16.3-297.el7.x86_64.rpm $LIB_FILE_PATH/mysql-lib/perl-libs-5.16.3-297.el7.x86_64.rpm
		if [ $? -eq 0 ];then
			echo "-->依赖-perl-安装成功"
		else
			echo "-->依赖-perl-安装失败"
		fi
	else
		echo "-->依赖-perl-本机已安装"
	fi
	rpm -qa | grep libaio &>/dev/null
	if [ $? -ne 0 ];then
		echo "-->依赖-libaio-缺少-正在安装"
		rpm -ivh $LIB_FILE_PATH/mysql-lib/libaio-0.3.109-13.el7.x86_64.rpm
		if [ $? -eq 0 ];then
			echo "-->依赖-libaio-安装成功"
		else
			echo "-->依赖-libaio-安装失败"
		fi
	else
		echo "-->依赖-libaio-本机已安装"
	fi
	if [ $MYSQL_VERSION -eq 8 ];then
		rpm -ivh $MYSQL_FILE_PATH/8.0.30/*.rpm
		sudo systemctl start mysqld
		if [ $? -eq 0 ];then
			sudo systemctl enable mysqld
			TEMP_PASSWORD=$(grep 'temporary password' /var/log/mysqld.log | awk '{print $NF}')
			echo "请手动输入初始密码:$TEMP_PASSWORD"
			mysql -u $USER -p --connect-expired-password -e "ALTER USER '$USER'@'localhost' IDENTIFIED BY '$MYSQL_PASSWORD';CREATE USER '$USER'@'%' IDENTIFIED BY '$MYSQL_PASSWORD';GRANT ALL PRIVILEGES ON *.* TO '$USER'@'%' WITH GRANT OPTION;FLUSH PRIVILEGES;"
			echo "MYSQL版本8.0.30-安装成功-新密码:$MYSQL_PASSWORD"
		else
			echo "MYSQL-安装失败"
		fi
	else
		rpm -ivh $MYSQL_FILE_PATH/5.7/*.rpm
		sudo systemctl start mysqld
		if [ $? -eq 0 ];then
			sudo systemctl enable mysqld
			TEMP_PASSWORD=$(grep 'temporary password' /var/log/mysqld.log | awk '{print $NF}')
			echo "请手动输入初始密码:$TEMP_PASSWORD"
			mysql -u $USER -p --connect-expired-password -e "ALTER USER '$USER'@'localhost' IDENTIFIED BY '$MYSQL_PASSWORD';GRANT ALL PRIVILEGES ON *.* TO '$USER'@'%' IDENTIFIED BY '$MYSQL_PASSWORD' WITH GRANT OPTION;FLUSH PRIVILEGES;"
			echo "MYSQL-版本5.7-安装成功-新密码:$MYSQL_PASSWORD"
		else
			echo "MYSQL-安装失败"
		fi
	fi
		
else
	echo "本机已安装MYSQL"
fi
echo "============================================================"
rpm -qa | grep redis &>/dev/null
if [ $? -ne 0 ];then
	echo "本机没有安装REDIS-正在尝试安装"
	rpm -qa | grep zlib &>/dev/null
	if [ $? -ne 0 ];then
		echo "-->依赖-zlib-缺少-正在尝试安装"
		rpm -ivh $LIB_FILE_PATH/devel/zlib-1.2.7-18.el7.x86_64.rpm
		if [ $? -eq 0 ];then
			echo "-->依赖-zlib-安装成功"
		else
			echo "-->依赖-zlib-安装失败"
		fi
	else
		if [[ "$(echo -e "$ZLIB_SYSTEM\n$ZLIB_FILE" | sort -V | head -n1)" == "$ZLIB_SYSTEM" ]];then
			echo "-->依赖-zlib-版本不符正在更新"
  			rpm -Fvh $LIB_FILE_PATH/devel/zlib-1.2.7-18.el7.x86_64.rpm
			if [ $? -eq 0 ];then
				echo "-->依赖-zlib-更新完成"
			else
				echo "-->依赖-zlib-更新失败"
			fi
		fi
		if [[ "$(echo -e "$ZLIB_SYSTEM\n$ZLIB_FILE" | sort -V | head -n1)" == "$ZLIB_FILE" ]];then
			echo "-->依赖-zlib-版本不符正在更新"
  			rpm -Uvh --oldpackage $LIB_FILE_PATH/devel/zlib-1.2.7-18.el7.x86_64.rpm
			if [ $? -eq 0 ];then
				echo "-->依赖-zlib-更新完成"
			else
				echo "-->依赖-zlib-更新失败"
			fi
		fi
		echo "-->依赖-zlib-本机已安装"
	fi
	rpm -qa | grep zlib-devel &>/dev/null
	if [ $? -ne 0 ];then
		rpm -ivh $LIB_FILE_PATH/devel/zlib-devel-1.2.7-18.el7.x86_64.rpm
		if [ $? -eq 0 ];then
			echo "-->依赖-zlib-devel-安装成功"
		else
			echo "-->依赖-zlib-devel-安装成功"
		fi
	else
		echo "-->依赖-zlib-devel-本机已安装"
	fi
	rpm -qa | grep pcre-devel &>/dev/null
	if [ $? -ne 0 ];then
		rpm -ivh $LIB_FILE_PATH/devel/pcre-devel-8.32-17.el7.x86_64.rpm
		if [ $? -eq 0 ];then
			echo "-->依赖-pcre-devel-安装成功"
		else
			echo "-->依赖-pcre-devel-安装成功"
		fi
	else
		echo "-->依赖-pcre-devel-本机已安装"
	fi
	gcc -v &>/dev/null
	if [ $? -ne 0 ];then
		echo "-->依赖-gcc-缺少-正在尝试安装"
		rpm -ivh $LIB_FILE_PATH/gcc/*.rpm --nodeps --force
		if [ $? -eq 0 ];then
			echo "-->依赖-gcc-安装成功"
		else
			echo "-->依赖-gcc-安装成功"
		fi
	else
		echo "-->依赖-gcc-本机已安装"
	fi
	tar -zvxf $REDIS_FILE_PATH/redis-7.0.5.tar.gz -C $SH_FILE_PATH
	sudo make -C $SH_FILE_PATH/redis-7.0.5 && sudo make -C $SH_FILE_PATH/redis-7.0.5 PREFIX=$SH_FILE_PATH/redis install
	echo "
	[Unit]
	Description=redis
	After=network.target

	[Service]
	User=$USER
	ExecStart=$SH_FILE_PATH/redis/bin/redis-server

	[Install]
	WantedBy=multi-user.target" >> /etc/systemd/system/redis.service
	sudo systemctl daemon-reload
	sudo systemctl start redis
	if [ $? -eq 0 ];then
		sudo systemctl enable redis
		echo "REDIS-版本7.0.5-安装成功"
	else
		echo "REDIS-安装失败"
	fi
else
	echo "本机已安装REDIS"
fi
echo "============================================================"
rpm -qa | grep nginx &>/dev/null
if [ $? -ne 0 ];then
	echo "本机没有安装NGINX-正在尝试安装"
	rpm -qa | grep zlib &>/dev/null
	if [ $? -ne 0 ];then
		echo "-->依赖-zlib-缺少-正在尝试安装"
		rpm -ivh $LIB_FILE_PATH/devel/zlib-1.2.7-18.el7.x86_64.rpm
		if [ $? -eq 0 ];then
			echo "-->依赖-zlib-安装成功"
		else
			echo "-->依赖-zlib-安装失败"
		fi
	else
		if [[ "$(echo -e "$ZLIB_SYSTEM\n$ZLIB_FILE" | sort -V | head -n1)" == "$ZLIB_SYSTEM" ]];then
			echo "-->依赖-zlib-版本不符正在更新"
  			rpm -Fvh $LIB_FILE_PATH/devel/zlib-1.2.7-18.el7.x86_64.rpm
			if [ $? -eq 0 ];then
				echo "-->依赖-zlib-更新完成"
			else
				echo "-->依赖-zlib-更新失败"
			fi
		fi
		if [[ "$(echo -e "$ZLIB_SYSTEM_2\n$ZLIB_FILE" | sort -V | head -n1)" == "$ZLIB_FILE" ]];then
			echo "-->依赖-zlib-版本不符正在更新"
  			rpm -Uvh --oldpackage $LIB_FILE_PATH/devel/zlib-1.2.7-18.el7.x86_64.rpm
			if [ $? -eq 0 ];then
				echo "-->依赖-zlib-更新完成"
			else
				echo "-->依赖-zlib-更新失败"
			fi
		fi
		echo "-->依赖-zlib-本机已安装"
	fi
	rpm -qa | grep zlib-devel &>/dev/null
	if [ $? -ne 0 ];then
		rpm -ivh $LIB_FILE_PATH/devel/zlib-devel-1.2.7-18.el7.x86_64.rpm
		if [ $? -eq 0 ];then
			echo "-->依赖-zlib-devel-安装成功"
		else
			echo "-->依赖-zlib-devel-安装成功"
		fi
	else
		echo "-->依赖-zlib-devel-本机已安装"
	fi
	rpm -qa | grep pcre-devel &>/dev/null
	if [ $? -ne 0 ];then
		rpm -ivh $LIB_FILE_PATH/devel/pcre-devel-8.32-17.el7.x86_64.rpm
		if [ $? -eq 0 ];then
			echo "-->依赖-pcre-devel-安装成功"
		else
			echo "-->依赖-pcre-devel-安装成功"
		fi
	else
		echo "-->依赖-pcre-devel-本机已安装"
	fi
	gcc -v &>/dev/null
	if [ $? -ne 0 ];then
		echo "-->依赖-gcc-缺少-正在尝试安装"
		rpm -ivh $LIB_FILE_PATH/gcc/*.rpm --nodeps --force
		if [ $? -eq 0 ];then
			echo "-->依赖-gcc-安装成功"
		else
			echo "-->依赖-gcc-安装成功"
		fi
	else
		echo "-->依赖-gcc-本机已安装"
	fi
	tar -zvxf $NGINX_FILE_PATH/nginx-1.9.8.tar.gz -C $SH_FILE_PATH
	cd $SH_FILE_PATH/nginx-1.9.8 && ./configure --prefix=$SH_FILE_PATH/nginx
	sudo make -C $SH_FILE_PATH/nginx-1.9.8 && sudo make -C $SH_FILE_PATH/nginx-1.9.8 install
	echo "
	[Unit]
	Description=nginx
	After=network.target

	[Service]
	User=$USER
	Type=forking
	ExecStart=$SH_FILE_PATH/nginx/sbin/nginx
	ExecReload=$SH_FILE_PATH/nginx/sbin/nginx -s reload
	ExecStop=ExecReload=$SH_FILE_PATH/nginx/sbin/nginx -s quit
	PrivateTmp=true

	[Install]
	WantedBy=multi-user.target" >> /etc/systemd/system/nginx.service
	sudo systemctl daemon-reload
	sudo systemctl start nginx
	if [ $? -eq 0 ];then
		sudo systemctl enable nginx
		echo "NGINX-版本1.20.1-安装成功"
	else
		echo "NGINX-安装失败"
	fi
else
	echo "本机已安装NGINX"
fi
echo "============================================================"
firewall-cmd --zone=public --add-port=3306/tcp --permanent &>/dev/null
firewall-cmd --zone=public --add-port=6379/tcp --permanent &>/dev/null
firewall-cmd --zone=public --add-port=80/tcp --permanent &>/dev/null
firewall-cmd --reload &>/dev/null
if [ $? -ne 0 ];then
	echo "工具检查完毕-防火墙开放端口失败[ 6379 | 3306 | 80 ]-请检查防火墙是否开启"
else
	echo "工具检查完毕-防火墙已开放端口[ 6379 | 3306 | 80 ]"
fi
echo "============================================================"

执行脚本

sh tool.sh

查看运行状态

# 查看运行状态
sudo systemctl status mysqld
sudo systemctl status redis
sudo systemctl status nginx
  • 7
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值