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

news2025/2/26 3:57:52

介绍

本文介绍了一个自动化安装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环境。

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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

flink源码分析之功能组件(四)-slot管理组件II

简介 本系列是flink源码分析的第二个系列,上一个《flink源码分析之集群与资源》分析集群与资源,本系列分析功能组件,kubeclient,rpc,心跳,高可用,slotpool,rest,metrics&…

零基础打靶—CTF4靶场

一、打靶的主要五大步骤 1.确定目标:在所有的靶场中,确定目标就是使用nmap进行ip扫描,确定ip即为目标,其他实战中确定目标的方式包括nmap进行扫描,但不局限于这个nmap。 2.常见的信息收集:比如平常挖洞使用…

哈夫曼树与并查集

带权路径长度: 哈夫曼树定义: 哈夫曼树的构造: 哈夫曼编码: 并查集: 代码实现:​​​​​​​ 优化:​​​​​​​

ftp的服务安装配置

安装 yum install -y vsftpd # 是否安装成功 rpm -qa | grep vsftpd # 是否开机启动 systemctl list-unit-files | grep vsftpd # 开机启动 systemctl enable vsftpd.service # ftp端口 netstat -antup | grep ftp # 状态 service vsftpd status service vsftpd start service…

mybatis多表查询(xml)

多表查询都用resultMap resultMap 说白了就是他可以手动设置映射参数&#xff0c;例如 可以指定 column代表数据库的参数 property 代表实体类的参数 <id column"roleid" property"id"></id> column代表数据库的参数 property 代表实体类…

融合CFPNet的EVC-Block改进YOLO的太阳能电池板缺陷检测系统

1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 研究背景与意义 随着太阳能电池板的广泛应用&#xff0c;对其质量和性能的要求也越来越高。然而&#xff0c;由于生产过程中的各种因素&#xff0c;太阳能电池板上可能存在各种缺…

人工智能和网络安全:坏与好

人工智能似乎可以并且已经被用来帮助网络犯罪和网络攻击的各个方面。 人工智能可以用来令人信服地模仿真人的声音。人工智能工具可以帮助诈骗者制作更好、语法正确的网络钓鱼消息&#xff08;而糟糕的语法往往会暴露出漏洞&#xff09;&#xff0c;并将其翻译成多种语言&…

Mongodb安装及其使用

1.Linux系统上安装Mongodb 在usr/local文件夹下创建mongo文件夹 下载mongodb包 wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-6.0.5.tgz解压mongodb tar -zxvf mongodb-linux-x86_64-rhel70-6.0.5.tgz更改文件夹的名字 mv mongodb-linux-x86_64-rh…

卷积神经网络-3D医疗影像识别

文章目录 一、前言二、前期工作1. 介绍2. 加载和预处理数据 二、构建训练和验证集三、数据增强四、数据可视化五、构建3D卷积神经网络模型六、训练模型七、可视化模型性能八、对单次 CT 扫描进行预测 一、前言 我的环境&#xff1a; 语言环境&#xff1a;Python3.6.5编译器&a…

css中的 Grid 布局

flex布局和grid布局区别 flex布局是 一维布局grid布局是二维布局 flex布局示例 grid布局示例 grid 布局初体验 体验地址 <div class"wrapper"><div class"one item">One</div><div class"two item">Two</div&…

【中文编码】利用bert-base-chinese中的Tokenizer实现中文编码嵌入

最近接触文本处理&#xff0c;查询了一些资料&#xff0c;记录一下中文文本编码的处理方法吧。   先下载模型和词表&#xff1a;bert-base-chinese镜像下载   如下图示&#xff0c;下载好的以下文件均存放在 bert-base-chinese 文件夹下    1. 词编码嵌入简介 按我通俗的…

笔记-基于CH579M模块通过网线直连电脑进行数据收发(无需网络)

刚学习&#xff0c;做个记录。 基于CH579M模块通过网线直连电脑进行数据收发(无需网络) 目录 一、工具1、CH579模块2、 网线3、电脑以及网络调试工具 二、操作步骤1、TCP/UDP等程序下载以及设置以太网IP2、网络断开3、检查以太网是否正常显示并稳定4、打开网络调试助手进行测试…

揭秘原型链:探索 JavaScript 面向对象编程的核心(下)

&#x1f90d; 前端开发工程师&#xff08;主业&#xff09;、技术博主&#xff08;副业&#xff09;、已过CET6 &#x1f368; 阿珊和她的猫_CSDN个人主页 &#x1f560; 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 &#x1f35a; 蓝桥云课签约作者、已在蓝桥云…

Swin Transformer实战图像分类(Windows下,无需用到Conda,亲测有效)

目录 前言 一、从官网拿到源码&#xff0c;然后配置自己缺少的环境。 针对可能遇到的错误&#xff1a; 二、数据集获取与处理 2.1 数据集下载 2.2 数据集处理 三、下载预训练权重 四、修改部分参数配置 4.1 修改config.py 4.2 修改build.py 4.3 修改units.py 4.4 修…

【程序设计】简易生产者、消费者模型

需求&#xff1a; 创建消息队列时需要指定队列的容量上限&#xff0c;队列中没有消息时&#xff0c;消费者从队列中take元素会阻塞&#xff1b;队列中的消息数量达到容量上限时&#xff0c;生产者往队列中put元素会阻塞。要保证线程安全。 组成&#xff1a; &#xff08;1&…

西南科技大学模拟电子技术实验五(集成运算放大器的应用设计)预习报告

一、计算/设计过程 设计一:用集成运放设计一个输入为0.05v,放大为-100的反相比例运算电路。 对于理想电路,反相比例运算电路的输出电压与输入电压之间的关系如下: =-100,所以 =100 若是假定R1为100k,则R2= =1k 为了减小输入级偏置电流引起的运算误差,在同相输入端…

全新MacOS固件正式版发布,打造出色的操作系统体验!

MacOS 11-14(PKG系统安装包及IPSW固件) 11.7.10/12.7.1/13.6.2/14.1.2正式版已经隆重发布&#xff01;这些固件版本适用于MacOS 11至14&#xff0c;带来了令人瞩目的升级和改进。 新版本固件通过增强系统的稳定性和性能&#xff0c;为用户创造了更加出色的操作系统体验。无论您…

VSC++: string声明的字符串这么相加

缘由https://bbs.csdn.net/topics/397667834 void string声明的字符串这么相加() {//缘由https://bbs.csdn.net/topics/397667834struct teacher { string name; };teacher t[3];string teachernameseed1 "张赵王";//把字符串放入种子中string teachernameseed2 &…

Docker从入门到实战:Docker快速部署、Dockerfile编写、容器间通信及共享数据实战、Docker-compose详解

文章目录 一、基本概念1、体系结构2、容器与镜像1&#xff09;镜像2&#xff09;容器a、容器内部结构b、容器生命周期 3、执行流程 二、常用命令docker pull 镜像名<:tags> &#xff1a;从远程仓库抽取镜像docker images&#xff1a;查看本地镜像docker run 镜像名<:t…

vue项目node-sass^4.14.1 python gyp 报错解决办法

npm i node-sass4.14.1 --sass_binary_sitehttps://npm.taobao.org/mirrors/node-sass/参考链接&#xff1a;链接