MySQL5.7安装与配置:自动化一键安装配置

介绍

本文介绍了一个自动化安装MySQL的Shell脚本。该脚本可以帮助用户快速安装MySQL,并自动进行配置和初始化。通过使用该脚本,用户无需手动执行繁琐的安装步骤,大大简化了MySQL的安装过程。

使用shell自动化安装教程

1. 复制脚本

首先,将以下脚本内容复制并保存为/tmp/install_mysql.sh文件。

#!/bin/bash

installDir="/opt/module/mysql"
version="5.7.44"

if [ -z $(command -v wget) ]; then
  sudo yum install -y wget
  echo "wget安装完成"
fi
if [ ! -d "${installDir}" ]; then
  sudo mkdir -p "${installDir}"
  if [ $? -eq 0 ]; then
    echo "安装目录${installDir}已创建"
  else
    echo "请确保您有足够的权限来创建目录,请增加权限后再次执行"
    exit 1
  fi
fi
if [ ! -f /tmp/mysql-$version-linux-glibc2.12-x86_64.tar.gz ]; then
  wget https://dev.mysql.com/get/Downloads/MySQL-${version:0:3}/mysql-$version-linux-glibc2.12-x86_64.tar.gz -P /tmp
  if [ $? -eq 0 ]; then
    echo "/tmp/mysql-$version-linux-glibc2.12-x86_64.tar.gz下载成功"
  else
    echo "/tmp/mysql-$version-linux-glibc2.12-x86_64.tar.gz下载失败,请重试或手动下载到/tmp目录下再次执行"
    echo "下载地址:https://dev.mysql.com/get/Downloads/MySQL-${version:0:3}/mysql-$version-linux-glibc2.12-x86_64.tar.gz"
    exit 1
  fi
fi

if [ -d $installDir/mysql-$version ]; then
  echo "$installDir/mysql-$version 已存在,正在删除"
  sudo rm -rf $installDir/mysql-$version
fi
tar -zxvf /tmp/mysql-$version-linux-glibc2.12-x86_64.tar.gz -C $installDir
if [ $? -eq 0 ]; then
  echo "/tmp/mysql-$version-linux-glibc2.12-x86_64.tar.gz解压成功"
  mv $installDir/mysql-$version-linux-glibc2.12-x86_64 $installDir/mysql-$version
  echo "mysql-$version-linux-glibc2.12-x86_64已重命名为mysql-$version"
else
  echo "/tmp/mysql-$version-linux-glibc2.12-x86_64.tar.gz解压失败,请查看异常信息后重试"
  exit 1
fi

mycnf="[mysqld]
datadir=$installDir/mysql-$version/data
port=3306
user=root
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
symbolic-links=0
max_connections=400
innodb_file_per_table=1
lower_case_table_names=1"
echo "$mycnf" > /etc/my.cnf
if [ $? -eq 0 ]; then
  echo "/etc/my.cnf设置成功"
else
  echo "/etc/my.cnf设置失败,请查看异常信息解决后,再次执行此脚本"
  exit 1
fi

mysqlserver="  basedir=$installDir/mysql-$version\n\
  bindir=$installDir/mysql-$version/bin\n\
  if test -z "'\"$datadir\"'"\n\
  then\n\
    datadir=$installDir/mysql-$version/data\n\
  fi\n\
  sbindir=$installDir/mysql-$version/bin\n\
  libexecdir=$installDir/mysql-$version/bin"

sed -i '/  basedir=\/usr\/local\/mysql/,/  libexecdir=\/usr\/local\/mysql\/bin/c '"$mysqlserver"'' $installDir/mysql-$version/support-files/mysql.server
if [ $? -eq 0 ]; then
  echo "mysql.server设置成功"
else
  echo "mysql.server设置失败,请查看异常信息解决后,再次执行此脚本"
  exit 1
fi

if [ -d $installDir/mysql-$version/data ]; then
  sudo rm -rf $installDir/mysql-$version/data
else
  $installDir/mysql-$version/bin/mysqld --initialize --user=root --datadir=$installDir/mysql-$version/data --basedir=$installDir/mysql-$version
  if [ $? -eq 0 ]; then
    echo "初始化 MySQL 数据库成功"
    echo "请输入生成的临时密码:"
    read password
    $installDir/mysql-$version/support-files/mysql.server start
    if [ $? -eq 0 ]; then
      echo "mysql服务启动成功"
      ln -s $installDir/mysql-$version/support-files/mysql.server /etc/init.d/mysql
      ln -s $installDir/mysql-$version/bin/mysql /usr/bin/mysql
      if [ $? -eq 0 ]; then
        echo "创建符号链接成功"
      else
        echo "创建符号链接失败"
      fi
    else
      echo "mysql服务启动失败,请查看异常信息解决后,再次执行此脚本"
      exit 1
    fi
    service mysql restart
    if [ $? -eq 0 ]; then
      echo "mysql服务重启成功"
    else
      echo "mysql服务重启失败,请查看异常信息解决后,再次执行此脚本"
      exit 1
    fi
    mysql --connect-expired-password -uroot -p"$password" -e "set password for root@localhost = password('root');"
    if [ $? -eq 0 ]; then
      echo "mysql密码已经设置为root"
    else
      echo "mysql密码设置为root失败,请查看异常信息解决后,再次执行此脚本"
      exit 1
    fi
    mysql -uroot -proot -e "use mysql; update user set user.Host='%' where user.User='root'; flush privileges;"
    if [ $? -eq 0 ]; then
      echo "mysql远程连接设置成功"
    else
      echo "mysql远程连接设置失败,请查看异常信息解决后,再次执行此脚本"
      exit 1
    fi
    # 设置MySQL服务在开机时自动启动
    cp $installDir/mysql-$version/support-files/mysql.server /etc/init.d/mysqld
    sudo chmod +x /etc/init.d/mysqld
    # /sbin/chkconfig是一个用于管理系统服务的命令,它可以用来设置服务的启动级别。
    sudo chkconfig --add mysqld
    # 将mysqld服务设置为开机启动
    /sbin/chkconfig mysqld on
  else
    echo "初始化 MySQL 数据库失败,请查看异常信息后重试"
    exit 1
  fi
fi

exit 0

2. 增加执行权限

在终端中执行以下命令,为脚本添加执行权限。

chmod a+x /tmp/install_mysql.sh

3. 执行脚本

执行以下命令,运行脚本开始下载、安装和配置MySQL5.7。

/tmp/install_mysql.sh

执行过程中需要输入临时密码:

在这里插入图片描述

请耐心等待,直到下载、安装和配置完成。执行过程中会显示相关信息。

成功如下图:

在这里插入图片描述

4. 进入 MySQL

现在,您可以使用以下命令进入 MySQL 数据库:

mysql -uroot -proot

如下图:
在这里插入图片描述

总结

本文详细介绍了一个自动化安装MySQL的Shell脚本,该脚本通过简化安装过程,使用户能够快速安装和配置MySQL。通过使用该脚本,用户无需手动执行繁琐的安装步骤,只需运行脚本即可完成MySQL的安装和配置。这不仅提高了安装的效率,还减少了出错的可能性。这个自动化安装MySQL的Shell脚本为用户提供了一个便捷的安装解决方案,使其能够更轻松地搭建MySQL环境。

希望本教程对您有所帮助!如有任何疑问或问题,请随时在评论区留言。感谢阅读!

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

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

相关文章

wordpress路径怎么优化?wordpress伪静态怎么做?

Wordpress这个程序是动态的,在后台中设置链接的格式为朴素,就可以了,这样简单又方便,因为百度对于路径的都是一样对待的,静态路径和动态路径,都是一样的对待。 有的时候,有的人会认为动态路径不…

2023年中国消费金融行业研究报告

第一章 行业概况 1.1 定义 中国消费金融行业,作为国家金融体系的重要组成部分,旨在为消费者提供多样化的金融产品和服务,以满足其消费需求。这一行业包括银行、消费金融公司、小额贷款公司等多种金融机构,涵盖了包括消费贷款在内…

网上选课系统源码(Java)

JavaWebjsp网上选课系统源码 运行示意图:

SqlServer_分页_OFFSET_FETCH

使用SQL server分页 使用SQL server分页的时候踩了一个坑&#xff1a; 用mybatis-plus分页的时候始终报错 代码&#xff1a;Page<SystemDictCatalog> page new Page<>(data.getPage(), data.getLimit()); QueryWrapper<SystemDictCatalog> wrapper new Qu…

java学习part29线程通信

139-多线程-线程间的通信机制与生产者消费者案例_哔哩哔哩_bilibili 1.等待唤醒 类似于golang的channel&#xff0c; 1.1用法 类似于go的wait()&#xff0c; 1.sleep和wait的一个重大区别是&#xff0c;sleep不会让线程失去同步监视器&#xff0c;而wait会释放 2.wait必须tr…

vqvae 论文阅读

https://arxiv.org/abs/1711.00937 直接3.1 首先我们定义一个嵌入空间. 是K*D维度的. K是离散空间向量的数量. D是每一个向量的维度. 所以e_i 中的i属于 1到K. 模型的输入是x, 也就是图片. 然后模型编码成一个z_e(x). 然后使用最近算法来得到 z_q 具体公式是下面1和2. 理解q这…

SHAP(四):NHANES I 生存模型

SHAP&#xff08;四&#xff09;&#xff1a;NHANES I 生存模型 这是一个 Cox 比例风险模型&#xff0c;基于来自 NHANES I 的数据以及来自 NHANES I 流行病学随访研究。 它旨在说明 SHAP 值如何能够以传统上仅由线性模型提供的清晰度解释 XGBoost 模型。 我们在数据中看到有趣…

制作一个RISC-V的操作系统一-计算机系统漫游

文章目录 计算机的硬件组成两种架构程序的存储与执行程序语言的设计和进化一个mini计算机 编程语言的进化存储设备的层次结构操作系统 计算机的硬件组成 所有硬件由总线连接起来 两种架构 总线个数不同&#xff0c;Memory储存内容不同 程序的存储与执行 首先编译和链接某…

第九节HarmonyOS 常用基础组件2-Image

一、组件介绍 组件&#xff08;Component&#xff09;是界面搭建与显示的最小单位&#xff0c;HarmonyOS ArkUI声名式为开发者提供了丰富多样的UI组件&#xff0c;我们可以使用这些组件轻松的编写出更加丰富、漂亮的界面。 组件根据功能可以分为以下五大类&#xff1a;基础组件…

确保软件安全性:在软件开发中的关键挑战与最佳实践

目录 引言 安全意识的重要性 软件安全性的挑战 漏洞和脆弱性 数据泄露 拒绝服务攻击 社会工程学攻击 软件安全性的最佳实践 安全的编程实践 安全审查与测试 数据加密和访问控制 网络安全措施 员工培训与安全意识 安全开发生命周期 结论 引言 在当今数字化时代&a…

《React 知识点》第一篇 大括号使用{}

简介 大括号 " {} "可以用于包裹JavaScript的表达式或语句。以便在jsx中动态生成内容。 插入变量与表达式 function expressionTest() {const name "变量测试";return (<p><div>{name}</div><div>表达式 210 {2 100}</div…

Java---接口讲解

文章目录 1. 接口概述2. 接口特点3. 接口成员特点4. 小案例应用5. 类和接口的关系6. 抽象类和接口区别 1. 接口概述 1. 接口是一种公共的规范标准&#xff0c;只要符合规范标准&#xff0c;大家都可以通用。Java中的接口更多的是体现在对行为的抽象。 2. 参考生活中的接口可以理…

【并发编程】什么是死锁?死锁如何解决?线上发生死锁应该怎么办?

&#x1f4eb;作者简介&#xff1a;小明Java问道之路&#xff0c;2022年度博客之星全国TOP3&#xff0c;专注于后端、中间件、计算机底层、架构设计演进与稳定性建设优化&#xff0c;文章内容兼具广度、深度、大厂技术方案&#xff0c;对待技术喜欢推理加验证&#xff0c;就职于…

前端打包添加前缀

vue2添加前缀 router的base加上前缀 export default new Router({mode: history, // 去掉url中的#base: privateDeployUrl, // 这里加上前缀scrollBehavior: () > ({y: 0}),routes: constantRoutes })vue.config.js&#xff0c;publicPath属性加上前缀 publicPath: proces…

大数据Doris(三十二):Doris高级功能

文章目录 Doris高级功能 一、​​​​​​​表结构变更

口罩标准讲解及推荐

一、我国医用口罩质量标准 1、YY/T0969-2013《一次性使用医用口罩》 2、YY0469-2011《医用外科口罩》 3、GB19083-2010《医用防护口罩技术要求》三类医用口罩各项指标对比如下&#xff1a; 结论&#xff1a;防护效果来说&#xff1a;医用防护口罩>医用外科口罩>一次性…

DouyinAPI接口系列丨Douyin商品详情数据接口丨Douyin视频详情数据接口

抖音商品详情API是抖音开放平台提供的一套API接口&#xff0c;用于获取商品详情信息。通过该API&#xff0c;开发者可以获取到商品的详细信息&#xff0c;包括商品ID、名称、描述、价格、销量、评价等信息。 在使用抖音商品详情API之前&#xff0c;需要先注册并登录抖音开放平…

智能优化算法应用:基于模拟退火算法无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于模拟退火算法无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于模拟退火算法无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.模拟退火算法4.实验参数设定5.算法结果6.参考…

博文小调研

感谢信 很高兴认识各位盆友&#xff0c;天南地北一家人&#xff01; 无论身在行业差异&#xff0c;所处职位高低&#xff0c;工作年限长短&#xff0c;这个平台都为爱好学习的人们提供了很好的机会和进步的源动力。 博主今年自11月份开启了新的系列文章&#xff0c;每周发表6…

分享88个节日PPT,总有一款适合您

分享88个节日PPT&#xff0c;总有一款适合您 88个节日PPT下载链接&#xff1a;https://pan.baidu.com/s/1mfLrdlB9Y1jqz2vkVIwBNA?pwd6666 提取码&#xff1a;6666 Python采集代码下载链接&#xff1a;采集代码.zip - 蓝奏云 学习知识费力气&#xff0c;收集整理更不易…