使用脚本进行编译安装nginx和安装mysql

1. 编译安装nginx

# 先看有没有安装nginx,然后安装,创建用户,启动

cat <<EOF
功能:
1、编译安装nginx
2、初始化功能
3、清理安装环境
4、选择是否启动nginx
EOF

# 检查是否安装nginx
nginx_path=`find / -name '*nginx'`
if [ -n "$nginx_path" ];then
    read -p "当前环境已安装nginx,是否清理重装[Y|N]" result
    if [ "$result" = "Y" ] || [ "$result" = "y" ];then
        echo "开始清理nginx环境"
        rm -rf $result
        echo "nginx环境清理完成"
    else
        echo "无法继续执行安装操作,程序终止"
        exit 1
    fi
fi

echo '当前系统没安装nginx,准备进行安装'
yum clean all && yum makecache
if [ $? -eq 0 ];then
    yum -y install gcc make zlib-devel pcre pcre-devel openssl-devel
    echo 'nginx依赖包安装完成'
    read -p "准备下载nginx包,请输入下载目录" wgnginx_path
    echo '下载nginx包'
    wget http://nginx.org/download/nginx-1.16.1.tar.gz
    echo '切换到您输入下载的目录中,解压缩'
    mv nginx-1.16.1.tar.gz $wgnginx_path
    cd $wgnginx_path
    tar xzf nginx-1.16.1.tar.gz
    cd nginx-1.16.1
    read -p "准备安装nginx包,请输入安装目录" agnginx_path
    ./configure --user=www --group=www --prefix=$agnginx_path
    echo '编译文件'
    make
    echo '安装文件'
    make install
    echo '创建nginx的用户'
    useradd www
    echo '关闭防火墙和setenforce'
    systemctl stop firewalld && setenforce 0
    echo 'nginx编译安装成功'
    read -p "是否需要启动nginx[Y|N]" yn
    if [ "$yn" = "Y" ] || [ "$yn" = "y" ];then
        $agnginx_path/sbin/nginx
    else
        echo '退出脚本流程'
        exit 0
    fi

else
    echo "yum程序错误,请检查"
fi




2. yum安装mysql

#!/usr/bin/bash

cat <<EOF
功能:
1、yum安装mysql5.7、8.0版本
2、初始化功能
3、清理安装环境
EOF

# 检测环境,清理环境
# 1、判断mysql是否已安装
rpm -qa | grep -P "mysql|mariadb" &>/dev/null
# 根据上面命令返回的值判断是否已经安装 0已安装
if [ $? -eq 0 ];then
    read -p "当前环境已安装mysql,是否清理[Y|N]" result
    # result为用户输入的信息判断是否清理
    if [ "$result" = "Y" ] || [ "$result" = "y" ];then
        echo "开始清理mysql环境,对于数据,我将会保留并保存到/tmp/mysql_data目录"
        # 先停止mysql服务
        systemctl stop mysqld mariadb &>/dev/null
        # 清理mysql相关的包
        yum erase -y `rpm -qa | grep -P "mysql|mariadb"` &>/dev/null
        # 删除mysql相关的文件
        rm -rvf /var/log/mysqld.log /etc/my.cnf /var/lib/mysql-files
        # 备份数据到/tmp/mysql_data中
        mv /var/lib/mysql /tmp/mysql_data 2>/dev/null
    else
        # 说明不安装
        echo "无法继续执行安装操作,程序终止"
        exit 
    fi
fi
# 先清理yum缓存和建立缓存
yum clean all && yum makecache
if [ $? -eq 0 ];then
    echo "开始安装mysql"
    # 安装mysql的yum源
    yum install -y https://dev.mysql.com/get/mysql80-community-release-el7-11.noarch.rpm &>/dev/null && \
    read -p "请选择安装版本的版本号[80|57](default 57):" level
    level=${level:=57}
    if [ $level -eq 57 ];then
        # 安装57版本的mysql
        yum install -y mysql-community-server --nogpgcheck --enablerepo mysql57-community --disablerepo mysql80-community
    elif [ $level -eq 80 ];then
        # 安装58版本的mysql
        yum install -y mysql-community-server --nogpgcheck
    fi
else
    echo "yum程序错误,请检查"
fi


systemctl enable mysqld --now
if [ -f /var/log/mysqld.log ];then
    # 安装成功启动后获取密码
    passwd=$(grep password /var/log/mysqld.log | awk 'END {print $NF}')
    # 重新设置密码
    mysqladmin -uroot -p"$passwd" password 'QianFeng@123'
    cat <<EOF
mysql $level 安装完成
数据目录位置: /var/lib/mysql
命令位置: /usr/bin
配置文件位置: /etc/my.cnf
日志文件位置: /var/log/mysqld.log
历史数据位置: /tmp/mysql_data
初始密码: QianFeng@123
EOF
else
    echo "日志文件无法找到,修改密码失败"
fi

3. shell基本用法

https://blog.csdn.net/weixin_45814478/article/details/137054889?spm=1001.2014.3001.5501

请看上一篇博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/499730.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

HarmonyOS 应用开发之UIAbility组件间交互(设备内)

UIAbility是系统调度的最小单元。在设备内的功能模块之间跳转时&#xff0c;会涉及到启动特定的UIAbility&#xff0c;该UIAbility可以是应用内的其他UIAbility&#xff0c;也可以是其他应用的UIAbility&#xff08;例如启动三方支付UIAbility&#xff09;。 本文将从如下场景…

HarmonyOS实战开发-实现Ability内页面间的跳转和数据传递。

介绍 本篇Codelab基于Stage模型下的Ability开发&#xff0c;实现Ability内页面间的跳转和数据传递。 最终效果图如下&#xff1a; 相关概念 页面路由&#xff1a;提供通过不同的url访问不同的页面&#xff0c;包括跳转到应用内的指定页面、用应用内的某个页面替换当前页面、…

数据分析之Power BI

POWER QUERY 获取清洗 POWER PIVOT建模分析 如何加载power pivot 文件-选项-加载项-com加载项-转到 POWER VIEW 可视呈现 如何加载power view 文件-选项-自定义功能区-不在功能区中的命令-新建组-power view-添加-确定 POWER MAP可视地图

HTTP(1)

目录 一、认识HTTP协议 理解 应用层协议 二、fiddler的安装以及介绍 1、fiddler的安装 2、fiddler的介绍 三、HTTP 报文格式 1、http的请求 2、http的响应 五、认识URL 六、关于URL encode 一、认识HTTP协议 HTTP 全称为&#xff1a;“超文本传输协议”&#xff0c;是…

【01-20】计算机网络基础知识(非常详细)从零基础入门到精通,看完这一篇就够了

【01-20】计算机网络基础知识&#xff08;非常详细&#xff09;从零基础入门到精通&#xff0c;看完这一篇就够了 以下是本文参考的资料 欢迎大家查收原版 本版本仅作个人笔记使用1、OSI 的七层模型分别是&#xff1f;各自的功能是什么&#xff1f;2、说一下一次完整的HTTP请求…

Mybatis-plus + 通用mapper(tk.mybatis)

推荐课程&#xff1a;MyBatisPlus实战教程02-课程介绍与案例演示_哔哩哔哩_bilibili 官网&#xff1a;MyBatis-Plus (baomidou.com) 目录 01 引言 1&#xff09;MyBatis与MyBatis-Plus区别 2&#xff09;Mybatis-plus入门案例 案例一&#xff1a;spring容器版本的案例 案例…

pip永久修改镜像地址

修改命令&#xff1a; pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple/ 效果&#xff1a; 会在C:\Users\PC(用户名)\AppData\Roaming\pip目录下新增或修改文件pip.ini 文件内容&#xff1a; [global] index-url https://pypi.tuna.tsinghua.e…

通过keil MDK生成静态库以减少编译时间

当我们的程序复杂度提高,代码量增大,每次编译都会花费更多的时间,虽然相比较Linux动则好几个小时的编译时间,单片机编译的时间已经算很短了,但是一个200多KB的程序编译也得需要好几分钟。如果将一些成熟固定,几乎不会再去修改的程序编译成静态库,那么可以减少一部分编译…

HarmonyOS实战开发-实现UIAbility内和UIAbility间页面的跳转

介绍 本篇Codelab基于Stage模型下的UIAbility开发&#xff0c;实现UIAbility内和UIAbility间页面的跳转。包含如下功能&#xff1a; UIAbility内页面的跳转。跳转到指定UIAbility的首页。跳转到指定UIAbility的指定页面&#xff08;非首页&#xff09;。 最终效果图如下&…

新数据显示,寻求博士后职位的美国科学家越来越少

戈罗登科夫/盖蒂图片社 美国国家科学基金会&#xff08;NSF&#xff09;发布的新数据显示&#xff0c;美国公民从事博士后工作的人数急剧下降&#xff0c;特别是在生物和生物医学科学领域。这一趋势凸显了人们对学术界正面临博士后短缺的担忧&#xff0c;以及早期职业科学家越来…

PPP、RRE、MGRE综合实验

一、实验拓扑图 二、实验要求 1.R5为ISP&#xff0c;只能进行IP地址配置&#xff0c;其所有地址均配为公有IP地址&#xff1b; 2.R1和R5间使用PPP的PAP认证&#xff0c;R5为主认证方: R2与R5之间使用ppp的CHAP认证&#xff0c; R5为主认证方;R3与R5之间使用HDLC封装; 3.R1、R2、…

Python:执行py命令,提示: Can‘t find a default Python.

1.Python运行环境罢工 今天&#xff0c;要运行一个前年用python编写的爬虫程序&#xff0c;先检测python运行环境是否正常&#xff1a; D:\Python38-32\works>c:\windows\py.exe Cant find a default Python. 再试&#xff1a; D:\Python38-32\works>py --list Installe…

Keepalived+MySQL简单搭建实现数据库高可用

需求&#xff1a;想要实现当MySQL服务挂了之后&#xff0c;能够自动切换到另一台&#xff0c;不对当前服务造成过多影响。查找了很多实现数据库高可用方案&#xff0c;比较常见的有MHA&#xff08;至少三台&#xff0c;一主多从&#xff09;、开源数据库中间件&#xff08;Myca…

浅试Kimi

最近KIMI大模型挺火的&#xff0c;擅长处理中文文本&#xff0c;咱也来试试吧&#xff01; 测试问题&#xff1a; 写一篇800字以上的短片小说&#xff1a;主要故事是以一位上进但其他方面表现平平的大男孩小贱&#xff0c;刚到公司不久&#xff0c;就被一位名叫大弟的女同事看…

量化交易入门(二十八)什么是布林带,量化中怎么使用

什么叫布林带 布林带&#xff08;Bollinger Bands&#xff09;是一种常用的技术分析指标&#xff0c;由约翰布林&#xff08;John Bollinger&#xff09;于20世纪80年代开发。它由三条线组成&#xff1a;中轨&#xff08;通常为20日移动平均线&#xff09;、上轨&#xff08;中…

python编程软件有什么

Python开发软件可根据其用途不同分为两种&#xff0c;一种是Python代码编辑器&#xff0c;一种是Python集成开发工具&#xff0c;两者的配合使用可以极大的提高Python开发人员的编程效率&#xff0c;以下是常用的几款Python代码编辑器和Python集成开发工具。 一、Python代码编…

嵌入式linux学习之交叉编译器安装

交叉编译器介绍 ARM 裸机、Uboot 移植、Linux 移植这些都需要在 Ubuntu 下进行编译&#xff0c;编译就需要编译器&#xff0c;在 Liux 进行 C 语言开发里面使用 GCC 编译器进行代码编译&#xff0c;但是 Ubuntu 自带的 gcc 编译器是针对 X86 架构的&#xff01;而我们现在要编…

深入理解Java接口:定义、使用与重要性(day13)

导语&#xff1a;Java接口是Java编程语言中的一个核心概念&#xff0c;它提供了一种定义方法但不包含方法实现的方式。接口在Java编程中扮演着重要角色&#xff0c;能够帮助我们实现代码的高内聚、低耦合&#xff0c;提高代码的复用性和可维护性。本文将详细介绍Java接口的定义…

python练习四

1. 求一个十进制的数值的二进制的0、1的个数 def count_binary_ones(n):binary_str bin(n)[2:] # 转换为二进制字符串&#xff0c;去除前缀0bprint(f"{n} 的二进制为: {binary_str}")return binary_str.count(0), binary_str.count(1) n int(input("输入一个…

Python车道线偏离预警

程序示例精选 Python车道线偏离预警 如需安装运行环境或远程调试&#xff0c;见文章底部个人QQ名片&#xff0c;由专业技术人员远程协助&#xff01; 前言 这篇博客针对《Python车道线偏离预警》编写代码&#xff0c;代码整洁&#xff0c;规则&#xff0c;易读。 学习与应用推…
最新文章