shell脚本自动安装MySQL8
- 环境: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
相关文章:
shell脚本自动安装MySQL8
环境: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…...
当没有OpenGL时,Skia如何绘制?
Skia 是可以在没有 OpenGL 的情况下进行图形绘制的,但是具体能否成功绘制图形,取决于 Skia 是如何配置的,以及平台上是否提供了其他的底层图形 API。 Skia 的底层依赖 Skia 的目标是提供一种跨平台的 2D 图形绘制接口。为了加速图形渲染&…...
大数据系列 | 白话讲解大数据技术生态中Hadoop、Hive、Spark的关系介绍
大数据属于数据管理系统的范畴,数据管理系统无非就两个问题:数据怎么存、数据怎么算 现在的信息爆炸时代,一台服务器数据存不下,可以找10台服务器存储,10台存储不下,可以再找100台服务器存储。但是这1…...
华为云函数计算FunctionGraph部署ollma+deepseek
1 概述 ollama和deepseek如果需要多实例,一种方式是部署在kubernetes集群中,一种是使用云厂商的云函数服务。云函数服务是按量付费,并且底层支持GPU,不需要维护kubernetes集群。本文介绍使用华为云函数计算FunctionGraph来部署ol…...
尚硅谷爬虫note001
一、模板设置 file——setting——editor——code style——file and code template——python script # _*_ coding : utf-8 _*_ # Time : ${DATE} ${TIME} # Author : 20250206-里奥 # File : ${NAME} # Project : ${PROJECT_NAME} 二、数据类型 2-1. 数字 整型int 浮点型f…...
35~37.ppt
目录 35.张秘书-《会计行业中长期人才发展规划》 题目 解析 36.颐和园公园(25张PPT) 题目 解析 37.颐和园公园(22张PPT) 题目 解析 35.张秘书-《会计行业中长期人才发展规划》 题目 解析 插入自定义的幻灯片:新建幻灯片→重用…...
FPGA简介|结构、组成和应用
Field Programmable Gate Arrays(FPGA,现场可编程逻辑门阵列),是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物, 是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,…...
4. React 中的 CSS
用例中的干净的脚手架的创建可以参考另一篇文章:3.React 组件化开发React官方并没有给出在React中统一的样式风格: 由此,从普通的css,到css modules,再到css in js,有几十种不同的解决方案,上百…...
django中间件,中间件给下面传值
1、新建middleware.py文件 # myapp/middleware.py import time from django.http import HttpRequest import json from django.http import JsonResponse import urllib.parse from django.core.cache import cache from comm.Db import Db class RequestTimeMiddleware:def …...
【论文阅读】Revisiting the Assumption of Latent Separability for Backdoor Defenses
https://github.com/Unispac/Circumventing-Backdoor-Defenses 摘要和介绍 在各种后门毒化攻击中,来自目标类别的毒化样本和干净样本通常在潜在空间中形成两个分离的簇。 这种潜在的分离性非常普遍,甚至在防御研究中成为了一种默认假设,我…...
Python基于Django的微博热搜、微博舆论可视化系统(V3.0)【附源码】
博主介绍:✌Java老徐、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇&…...
集成学习(一):从理论到实战(附代码)
一、引言 在机器学习领域,打造一个独立、强大的算法是解决问题的关键。然而,集成学习提供了一种不同的视角:通过组合多个“弱”学习器来创建一个更强大的模型。本文探讨集成学习的思想、方法及其应用。 二、机器学习 vs 集成学习思想 传统…...
不小心删除服务[null]后,git bash出现错误
不小心删除服务[null]后,git bash出现错误,如何解决? 错误描述:打开 git bash、msys2都会出现错误「bash: /dev/null: No such device or address」 问题定位: 1.使用搜索引擎搜索「bash: /dev/null: No such device o…...
【云安全】云原生- K8S kubeconfig 文件泄露
什么是 kubeconfig 文件? kubeconfig 文件是 Kubernetes 的配置文件,用于存储集群的访问凭证、API Server 的地址和认证信息,允许用户和 kubectl 等工具与 Kubernetes 集群进行交互。它通常包含多个集群的配置,支持通过上下文&am…...
【工业场景】用YOLOv8实现火灾识别
火灾识别任务是工业领域急需关注的重点安全事项,其应用场景和背景意义主要体现在以下几个方面: 应用场景:工业场所:在工厂、仓库等工业场所中,火灾是造成重大财产损失和人员伤亡的主要原因之一。利用火灾识别技术可以及时发现火灾迹象,采取相应的应急措施,保障人员安全和…...
(2025)深度分析DeepSeek-R1开源的6种蒸馏模型之间的逻辑处理和编写代码能力区别以及配置要求,并与ChatGPT进行对比(附本地部署教程)
(2025)通过Ollama光速部署本地DeepSeek-R1模型(支持Windows10/11)_deepseek猫娘咒语-CSDN博客文章浏览阅读1k次,点赞19次,收藏9次。通过Ollama光速部署本地DeepSeek-R1(支持Windows10/11)_deepseek猫娘咒语https://blog.csdn.net/m0_70478643/article/de…...
【自然语言处理】TextRank 算法提取关键词、短语、句(Python源码实现)
文章目录 一、TextRank 算法提取关键词 [工具包]二、TextRank 算法提取关键短语[工具包]三、TextRank 算法提取关键句[工具包]四、TextRank 算法提取关键句(Python源码实现) 一、TextRank 算法提取关键词 [工具包] 见链接 【自然语言处理】TextRank 算法…...
记一次Self XSS+CSRF组合利用
视频教程在我主页简介或专栏里 (不懂都可以来问我 专栏找我哦) 目录: 确认 XSS 漏洞 确认 CSRF 漏洞 这个漏洞是我在应用程序的订阅表单中发现的一个 XSS 漏洞,只能通过 POST 请求进行利用。通常情况下,基于 POST 的…...
人生的转折点反而迷失了方向
就像我老婆说的,我是抽空结了一个婚。今天是上班的第三天,不知道是出于何种原因,自己反而陷入了深深的困境,没有了斗志,原因也找不出来,白天在公司没有很大量的产出,晚上回去是想学一学…...
Deepseek PHP API调用指南
本文将介绍如何通过 PHP 调用 Deepseek API,并通过简易代码展示如何与 Deepseek 的 AI 模型进行交互,帮助开发者更好地在自己的项目中应用这一强大的工具。我们将提供一个基本的 PHP 示例,帮助你快速了解如何通过 Deepseek API 进行调用。 以…...
网络安全事件分级
对网络安全事件进行必要分级,是做好应急响应工作的前提。网络安全事件分级要统筹考虑诸多因素,直观展示信息安全事件的风险程度,为后续处置工作提供重要参考。 一、网络安全事件的分级要素 对网络安全事件的分级主要考虑3个要素:…...
JDBC如何连接数据库
首先,我们要去下载JDBC的驱动程序 官网下载地址:https://downloads.mysql.com/archives/c-j/ 选择最新版本就可以 然后回到我们idea点击file - project Structure - Modules, 就行了 参考1:如何解决JDBC连接数据库出现问题且对进行数据库操…...
AI语言模型的技术之争:DeepSeek与ChatGPT的架构与训练揭秘
云边有个稻草人-CSDN博客 目录 第一章:DeepSeek与ChatGPT的基础概述 1.1 DeepSeek简介 1.2 ChatGPT简介 第二章:模型架构对比 2.1 Transformer架构:核心相似性 2.2 模型规模与参数 第三章:训练方法与技术 3.1 预训练与微调…...
强化学习裁剪函数:解锁算法稳定性的关键密码
目录 一、引言二、裁剪函数基本原理(一)什么是裁剪函数(二)裁剪函数在强化学习中的作用 三、裁剪函数在常见强化学习算法中的应用(一)近端策略优化(PPO)算法(二ÿ…...
网络安全威胁是什么
1.网络安全威胁的概念 网络安全威胁指网络中对存在缺陷的潜在利用,这些缺陷可能导致信息泄露、系统资源耗尽、非法访问、资源被盗、系统或数据被破坏等。 2.网络安全威胁的类型 物理威胁系统漏洞威胁身份鉴别威胁线缆连接威胁有害程序危险 (1&#x…...
iOS主要知识点梳理回顾-3-运行时消息机制
运行时(runtime) 运行时是OC的重要特性,也是OC动态性的根本支撑。动态,如果利用好了,扩展性就很强。当然了,OC的动态性只能算是一个一般水平。与swift、java这种强类型校验的语言相比,OC动态性很…...
驱动开发、移植(最后的说法有误,以后会修正)
一、任务明确:把创龙MX8的驱动 按照我们的要求 然后移植到 我们的板子 1.Linux系统启动卡制作, sd卡 先按照 《用户手册—3-2-Linux系统启动卡制作及系统固化》 把创龙的Linux系统刷进去。 2. 把TLIMX8-EVM的板子过一遍 把刚刚烧好系统的sd卡插入 创…...
归并排序(C# C++)
目录 1 归并排序的基本概念 2 算法步骤 2-1 分解阶段 2-2 合并阶段 3 代码实现 3-1 C#代码示例(该代码在unity环境下) 3-2 C代码示例 1 归并排序的基本概念 归并排序(Merge Sort)是一种经典的分治算法,由约翰…...
【逆向工程】破解unity的安卓apk包
先了解一下普通apk包的逆向方法(无加密或加壳) 开发环境: 操作系统:windows 解apk包 下载工具:apktool【Install Guide | Apktool】按照文档说的操作就行,先安装java运行时环境【我安装的是jre-8u441-wind…...
如何使用智能化RFID管控系统,对涉密物品进行安全有效的管理?
载体主要包括纸质文件、笔记本电脑、优盘、光盘、移动硬盘、打印机、复印机、录音设备等,载体(特别是涉密载体)是各保密、机要单位保证涉密信息安全、防止涉密信息泄露的重要信息载体。载体管控系统主要采用RFID射频识别及物联网技术…...
