shell脚本自动安装MySQL8

devtools/2025/2/13 5:25:53/
  • 环境:centos7
  • 版本:8.0.28
  • 安装包:mysql-8.0.28-linux-glibc2.12-x86_64.tar.xz 二进制包
  • 要求:安装包和shell脚本在同一目录下
  • 执行方式:sudo ./install_mysql8.sh
#!/bin/bash# 定义MySQL安装目录和压缩包名称MYSQL_DIR="/usr/local/mysql-8.0.28-linux-glibc2.12-x86_64"MYSQL_TAR="mysql-8.0.28-linux-glibc2.12-x86_64.tar.xz"# 检查MySQL目录是否存在,不存在则解压并创建符号链接if [ ! -d "$MYSQL_DIR" ]; thenecho "正在解压MySQL安装包..."tar -xvf "$MYSQL_TAR" -C /usr/local/ln -s "$MYSQL_DIR" /usr/local/mysqlelseecho "MySQL安装包已存在,跳过解压。"fi# 检查MySQL用户是否存在,不存在则创建if ! id -u mysql >/dev/null 2>&1; thenecho "正在创建MySQL用户和组..."groupadd mysqluseradd -r -g mysql -s /bin/false mysqlelseecho "MySQL用户已存在,跳过创建。"fi# 检查MySQL配置文件是否存在,不存在则创建if [ ! -f /etc/mysql/my.cnf ]; thenecho "正在创建MySQL配置文件..."mkdir -p /etc/mysqlcat > /etc/mysql/my.cnf <<EOF[client]socket=/var/lib/mysql/mysql.sock[mysql]prompt=(\\u@\\h) [\\d]>\\_    # 更改MySQL客户端命令>前面显示内容[mysqld]port=3306user=mysqlsocket=/var/lib/mysql/mysql.sockdatadir=/usr/local/mysql/datalog_error=error.logEOFelseecho "MySQL配置文件已存在,跳过创建。"fi# 检查MySQL数据目录是否存在,不存在则初始化数据库if [ ! -d /usr/local/mysql/data ]; thenecho "正在初始化MySQL数据库..."cd /usr/local/mysqlmkdir -p mysql-fileschown mysql:mysql mysql-fileschmod 750 mysql-filesbin/mysqld --initialize --user=mysql# 获取临时root密码echo "等待MySQL生成临时密码..."for i in {1..30}; doif [ -f /usr/local/mysql/data/error.log ]; thentemp_password=$(grep 'temporary password' /usr/local/mysql/data/error.log | awk '{print $NF}')if [ -n "$temp_password" ]; thenecho "MySQL临时密码: $temp_password"breakfifisleep 1doneif [ -z "$temp_password" ]; thenecho "无法获取MySQL临时密码,请检查/usr/local/mysql/data/error.log"exit 1fielseecho "MySQL数据目录已存在,跳过初始化。"fi# 检查systemd服务文件是否存在,不存在则创建if [ ! -f /etc/systemd/system/mysqld.service ]; thenecho "正在创建systemd服务文件..."cat > /etc/systemd/system/mysqld.service <<EOF[Unit]Description=MySQL ServerAfter=network.target[Service]User=mysqlGroup=mysqlExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/mysql/my.cnfExecStop=/usr/local/mysql/bin/mysqladmin shutdownRestart=on-failure[Install]WantedBy=multi-user.targetEOFelseecho "systemd服务文件已存在,跳过创建。"fiif [ ! -d /var/lib/mysql/ ]; thenmkdir /var/lib/mysql/chown -R mysql:mysql /var/lib/mysqlchmod 750 /var/lib/mysqlelseecho "/var/lib/mysql目录已存在,跳过创建。"fi# 启动并启用MySQL服务systemctl daemon-reloadsystemctl start mysqldsystemctl enable mysqld# 配置环境变量if ! grep -q '/usr/local/mysql/bin' /etc/profile; thenecho 'export PATH=$PATH:/usr/local/mysql/bin' >> /etc/profile# 直接修改当前 Shell 的环境变量export PATH=$PATH:/usr/local/mysql/binecho "环境变量已添加到 /etc/profile 并立即生效。"echo "如需全局生效,请手动执行以下命令:"echo "source /etc/profile"elseecho "环境变量已配置,跳过。"fi# 检查MySQL是否安装成功if mysql --version >/dev/null 2>&1; thenecho "MySQL 8 安装成功!"elseecho "MySQL 安装失败,请检查日志。"exit 1fi

http://www.ppmy.cn/devtools/158392.html

相关文章

DeepSeek-R1复现方案梳理

open-r1 项目地址&#xff1a;https://github.com/huggingface/open-r1 由huggingface组建&#xff0c;目前刚上线2周&#xff0c;发布了最新进展open-r1/update-1&#xff0c;在MATH-500任务上接近deepseek的指标&#xff0c;可以在open-r1/open-r1-eval-leaderboard查看指标的…

【Vue2】vue2项目中如何使用mavon-editor编辑器,数据如何回显到网页,如何回显到编辑器二次编辑

参考网站&#xff1a; 安装使用参考&#xff1a;vue2-常用富文本编辑器使用介绍 html网页展示、编辑器回显二次编辑参考&#xff1a;快速搞懂前端项目如何集成Markdown插件mavon-editor&#xff0c;并回显数据到网页 安装命令 npm install mavon-editor2.9.1 --save全局配置 …

工业路由器物联网应用,智慧环保环境数据监测

在智慧环保环境数据监测中工业路由器能连接各类分散的传感器&#xff0c;实现多源环境数据集中采集&#xff0c;并通过多种通信网络稳定传输至数据中心或云平台。 工作人员借助工业路由器可远程监控设备状态与环境数据&#xff0c;还能远程配置传感器参数。远程控制设置数据阈…

DatePicker 实现:日期范围截止时间为23:59:59

文章目录 需求描述实现逻辑 需求描述 在使用 Element Plus 的 el-date-picker 组件进行日期范围选择时&#xff0c;如果你希望选择的日期范围截止时间为所选时间的23:59:59&#xff0c;你可以通过设置 type 属性为 daterange&#xff0c;并结合使用 value-format 属性来控制时间…

2.11寒假

今天复习了深搜和广搜然后做了作业中的一个题目。 解析&#xff1a;外层 for 循环&#xff1a;for (int i 1; i < n; i)&#xff0c;循环变量 i 从 1 递增到 n&#xff0c;表示要依次将数字 1 到 n 分配到数组 a 中。内层 for 循环&#xff1a;for (int j 1; j < 2; j)…

标题:深入探索 gRPC:后端开发中高效通信的利器

随着微服务架构在后端开发中的普及&#xff0c;如何实现服务之间高效、低延迟的通信成为了一个关键问题。传统的 HTTP 协议在处理大量并发请求时&#xff0c;虽然易于实现&#xff0c;但性能上存在一定的瓶颈。为了解决这个问题&#xff0c;gRPC&#xff08;Google Remote Proc…

【DeepSeek】deepseek可视化部署

目录 1 -> 前文 2 -> 部署可视化界面 1 -> 前文 【DeepSeek】DeepSeek概述 | 本地部署deepseek 通过前文可以将deepseek部署到本地使用&#xff0c;可是每次都需要winR输入cmd调出命令行进入到命令模式&#xff0c;输入命令ollama run deepseek-r1:latest。体验很…

Winform开发框架(蝇量级) MiniFramework V2.1

C/S框架网与2022年发布的一款蝇量级开发框架&#xff0c;适用于开发Windows桌面软件、数据管理应用系统、软件工具等轻量级软件&#xff0c;如&#xff1a;PLC上位机软件、数据采集与分析软件、或企业管理软件&#xff0c;进销存等。适合个人开发者快速搭建软件项目。 适用开发…