[Linux]Mysql9.0.1服务端脱机安装配置教程(redhat)
前言
本教程适用于在yum源不可用的LInux主机上安装Mysql的场景。
以redhat系主机做操作示例,debian系主机可参照步骤,将对应的rpm -ivh命令换成dpkg -i。
1. 官网下载安装包
https://dev.mysql.com/downloads/mysql/
1.1 版本分类
MySQL Enterprise Edition:企业版(收费)
MySQL Cluster CGE:高级集群版(收费)
MySQL Community Edition:社区版(开源免费,但官方不提供技术支持)
一般我们使用社区版的。
在该页面中,可以选择5.0到9.0的各历史版本:https://downloads.mysql.com/archives/community/

1.2 查看主机版本
我使用的是redhat系的Linux服务器,因此Operating System(操作系统)一项选择“RedHat”。
OS Version一项有以下多个版本可选:

我们进入主机,输入以下命令查看版本号。
uname -a
你会看到类似以下的内容:
Linux 4.19.0-477.15.5.el8.mylinux.x86_64 #1 SMP Tue Aug 22 18:16:37 CST 2023 x86_64 x86_64 x86_64 GNU/Linux
其中的el8表明你的主机是"Linux 8"的,x86_64,则对应选择x86,64-bit。
1.3 选择对应的版本进行下载
至此,我们选择了对应的版本。
筛选出来的安装包有大约20个,我们根据以下关键字,使用Ctrl+F快捷键,快速筛选下载6个安装包。
- mysql-community-client-9.0.1-1.el8.x86_64.rpm
- mysql-community-client-plugins-9.0.1-1.el8.x86_64.rpm
- mysql-community-common-9.0.1-1.el8.x86_64.rpm
- mysql-community-icu-data-files-9.0.1-1.el8.x86_64.rpm
- mysql-community-libs-9.0.1-1.el8.x86_64.rpm
- mysql-community-server-9.0.1-1.el8.x86_64.rpm
注:虽然我们只想安装Mysql服务端(即Mysql-server),但它依赖于其他的包,如果单独安装mysql-server,也会提示你安装其他的包,如下图所示。

二、在服务器上安装
2.1 按顺序安装
将6个安装包上传到服务器上。按照如下顺序安装。
sudo rpm -ivh mysql-community-common-9.0.1-1.el8.x86_64.rpm
sudo rpm -ivh mysql-community-client-plugins-9.0.1-1.el8.x86_64.rpm
sudo rpm -ivh mysql-community-libs-9.0.1-1.el8.x86_64.rpm
sudo rpm -ivh mysql-community-client-9.0.1-1.el8.x86_64.rpm
sudo rpm -ivh mysql-community-icu-data-files-9.0.1-1.el8.x86_64.rpm
sudo rpm -ivh mysql-community-server-9.0.1-1.el8.x86_64.rpm
2.2 安装完成后初步检查安装情况
输入如下命令
whereis mysql
whereis mysqld
如果返回的路径是空的,那么说明安装还有问题,请自己查看安装过程中的报错,常见的是安装顺序不对引起的安装失败。
如果返回了路径非空,说明mysql已经安装上了,如下图所示。

三、参数配置
3.1 创建data目录
mkdir ~/data
我计划把路径设置在家目录的data路径下,在这个路径新建好目录。
注:如果你新建到了别的目录,请注意使用ls -l查看目录的所有者和所有组是否为当前用户,否则可能会因为数据无权限写入导致的异常。
修改所有者所有组使用以下命令:
chown -R 当前用户:当前用户 data路径
假如我的用户名为wingaso,data路径为/home/wingaso/data,那么命令为:
chown -R wingaso:wingaso /home/wingaso/data
3.2 配置my.cnf
sudo vi /etc/my.cnf
将其中的datadir改为指向刚刚创建的data目录路径。
log-error指定了mysqld的日志路径,在这个日志中记录了mysql服务端启动与运行时的相关异常信息,可以改到用户家目录下,或者保持原路径不变也可以。
注:修改该文件需要sudo权限。
3.3 初始化mysql
mysqld --initialize
这个命令没有返回的内容。我们可以通过ls命令查看data目录是否生成文件,来初步确认命令是否创建成功。
ls data
看到如下内容:

如果使用ls命令查看到data目录下是空的,那么请检查data路径的权限,可参照以下命令进行权限和所有组的更改。
chmod 755 data
chown -R wingaso:wingaso data
3.4 所有者修改
如果你当前用户名是mysql,那么你可以跳过本次操作。
否则必须进行修改,因为mysql安装后默认所有者所有组均为mysql(如下图所示),如果不修改,会导致mysql因权限问题无法正常启动。


如下图,所有者问题,会导致sock.lock文件无法创建,mysqld启动失败。

3.4.1 目录/文件所有者修改
cd /var/run/
sudo chown -R wingaso:wingaso mysql*
cd /var/lib/
sudo chown -R wingaso:wingaso mysql*
cd /var/log/
sudo chown -R wingaso:wingaso mysql*
将以上命令粘贴执行即可,注意修改需要sudo权限。
修改后可以通过ls -l命令查看所有者变更情况:
ls -l /var/run/
ls -l /var/lib/
ls -l /var/log/
3.4.2 mysqld.service所有者修改
sudo vi /usr/lib/systemd/system/mysqld.service
这个文件中User和Group默认为"mysql",如果你的当前用户名不是mysql,那么以服务方式启动mysql将会报错。需要将其中的User和Group改为当前用户名,如下图所示。

修改后保存,再使用如下语句重新加载配置。
sudo systemctl daemon-reload
3.5 启动mysql
sudo systemctl restart mysqld
如果上边的步骤都操作无误,那么将会成功运行起来,否则将会出现以下报错。

3.5.1 运行报错处理
运行建议命令
sudo systemctl status mysqld.service
你应该会看到类似以下的报错信息

对于该信息,其中我们只能初步得知是权限问题,但想单从这个报错中看出是哪里的权限问题,简直是天方夜谭。
关键还是得看mysqld.log文件中的详细报错信息。
tail -n 500 /var/log/mysqld.log
注:如果你在配置my.cnf时,已将error-log改为了自定义路径,请在对应路径查看日志信息。
3.6 安全配置
3.6.1 获取初始密码
在运行mysqld --initialize后,初始密码会保存在mysqld.log文件中,通过以下命令可以找出该密码。
grep 'temporary password' /var/log/mysqld.log
执行结果如下图所示。

注:如果mysqld --initialize执行过多次,那么可能会查找出多个初始密码,应以最后一个初始密码为准。
3.6.2 进行安全配置
sudo mysql_secure_installation
运行该命令,会提示输入密码,将刚刚获取到的初始密码输入,便可进入配置对话。
该命令会对以下几个内容进行设置:
- 为root用户设置密码
- 删除匿名账号
- 取消root用户远程登录
- 删除test库和对test库的访问权限
- 刷新授权表使修改生效
请根据实际情况进行设置。
注:如果运行该命令,出现如下报错(Can’t connect to local Mysql server through socket ‘/var/lib/mysql/mysql.sock’),那么一般是mysql没有启动引起的,请参照3.5节启动mysql,再宠幸执行该命令。

四、验证
mysql -uroot -p
<输入密码>
show databases;
如果能够成功登录到mysql并进行数据库操作,说明mysql已经安装完成。安装配置便大功告成了。
五、其他
如果需要主从部署,那么需要在主从主机上按照以上步骤将Mysql安装完成后,再对Mysql进行专门的主从配置。这部分将会在另一篇文章中细说,敬请期待。
参考
MySQL 在 Windows 下安装教程、避坑指南
Mysql安全启动配置向导——mysql_secure_installation(生产环境必做的设置)
相关文章:
[Linux]Mysql9.0.1服务端脱机安装配置教程(redhat)
前言 本教程适用于在yum源不可用的LInux主机上安装Mysql的场景。 以redhat系主机做操作示例,debian系主机可参照步骤,将对应的rpm -ivh命令换成dpkg -i。 1. 官网下载安装包 https://dev.mysql.com/downloads/mysql/ 1.1 版本分类 MySQL Enterprise…...
uniapp--HBuilder开发
提示:本文为学习内容,若有错误,请联系作者,谦虚受教。 文章目录 前言一、下载HBuilder二、添加modbus相关库1.下载nodejs2.下载modbus库3.项目添加modbus库 三、HBuilder相关功能语句1.文件夹说明2.消息信息框3.开关按钮4.选中按钮…...
计算机毕业设计学习项目-P10080 基于springboot+vue的社团管理系统的设计与实现
项目说明 本号所发布的项目均由我部署运行验证,可保证项目系统正常运行,以及提供完整源码。 如需要远程部署/定制/讲解系统,可以联系我。定制项目未经同意不会上传! 项目源码获取方式放在文章末尾处 注:项目仅供学…...
with as提高sql的执行效率
实战sql with cte(UNIT_ID, UNIT_NAME, PARENT_UNIT_ID, UNIT_CODE ) as (select UNIT_ID, UNIT_NAME, PARENT_UNIT_ID , UNIT_CODEfrom HPFM_UNITunion allselect t.UNIT_ID, t.UNIT_NAME, t.PARENT_UNIT_ID, t.UNIT_CODEfrom HPFM_UNIT tjoin cte on t.PARENT_UNIT_ID cte.U…...
【银河麒麟高级服务器操作系统实例】tcp半链接数溢出分析及处理全过程
了解更多银河麒麟操作系统全新产品,请点击访问 麒麟软件产品专区:https://product.kylinos.cn 开发者专区:https://developer.kylinos.cn 文档中心:https://document.kylinos.cn 服务器环境以及配置 系统环境 物理机/虚拟机/云…...
计算机毕业设计Python中华古诗词知识图谱可视化 古诗词智能问答系统 古诗词数据分析 古诗词情感分析模型 自然语言处理NLP 机器学习 深度学习
温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 作者简介:Java领…...
分布式ID生成-雪花算法实现无状态
雪花算法这里不再赘述,其缺点是有状态(多副本隔离时,依赖手动配置workId和datacenterId),代码如下: /*** 雪花算法ID生成器*/ public class SnowflakeIdWorker {/*** 开始时间截 (2017-01-01)*/private st…...
【问题】配置 Conda 与 Pip 源
通常情况下,使用 conda 命令或者 pip 命令都是从国外的服务器上下载需要的模块包的,这在网速不佳的情况下会消耗大量的时间。所以这里建议更换国内的源来进行模块下载,速度会大大提升。 具体方法如下: 打开命令行 cmd 工具,输入以下命令。 ① Conda 换源 conda config…...
Zookeeper是如何保证事务的顺序一致性的?
大家好,我是锋哥。今天分享关于【Zookeeper是如何保证事务的顺序一致性的?】面试题。希望对大家有帮助; Zookeeper是如何保证事务的顺序一致性的? 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 Zookeeper 通过多个机制来保证事务的顺序一…...
东土科技参股广汽集团飞行汽车初创公司,为低空经济构建新型产业生态
近日,广汽集团旗下专注于飞行汽车领域的初创公司广东高域科技有限公司于2024年12月31日正式成立,在穿透后的股东信息中,东土科技通过广州瓴云科技投资合伙企业(有限合伙)赫然在列。 此前12月18日,广汽集团…...
Oracle 中的各种名称(*_name)参数的含义与作用
Oracle 中的各种名称(*_name)参数的含义与作用 目录 Oracle 中的各种名称(*_name)参数的含义与作用一、数据库名:db_name二、数据库所在的域:db_domain三、全局数据库名:global_name四、服务名&…...
前端页面的内容格式
TaskBuilder可以编辑的前端页面类型分为HTML和tfp(Taskmsg Front Page)两种格式,HTML格式只能用代码编辑器编辑,这种模式基本很少有人用,大家都用tfp格式,因为使用TaskBuilder向导创建的前端页面都是采用的…...
数据库1-4讲
各种名词区分 内模式也叫物理模式、存储模式。 概念模式也叫全局模式、逻辑模式。 外模式也叫用户模式。 笛卡尔积:D1、D2、D3集合中任取一个的所有可能情况。 因此上述笛卡尔积的基数22312 关系模型的三个完整性: 实体完整性&#x…...
设计模式 行为型 命令模式(Command Pattern)与 常见技术框架应用 解析
命令模式(Command Pattern)是一种行为型设计模式,它旨在将请求发送者和接收者解耦,通过将一个请求封装为一个对象,从而允许参数化客户端对象以进行不同的请求、排队请求或记录请求,并支持可撤销操作。 在软…...
【Redis】简介|优点|使用场景|为什么Redis快
目录 一、简介 二、特性(优点) 三、使用场景 一、简介 内存中存储数据的中间件,用于数据库,数据缓存,在分布式系统中能够大展拳脚 中间件:应用程序可以直接从 Redis 中获取数据,而不必频繁地…...
Clisoft SOS与CAD系统集成
Clisoft SOS与CAD系统集成 以下内容大部分来自官方文档,目前只用到与Cadence Virtuoso集成,其他还未用到,如有问题或相关建议,可以留言。 与Keysight ADS集成 更新SOS客户端配置文件sos.cfg,以包含支持ADS的模板&am…...
【linux系统之redis6】redis的安装与初始化
下载redis的linux对应的安装包,并上传到linux虚拟机里面 解压压缩包 tar -zxzf redis-6.2.6.tar.gz解压后,进入redis文件 cd redis-6.2.6执行编译 make && make install看到下图,就说明redis安装成功了 默认的安装路径,…...
Backend - EF Core(C# 操作数据库 DB)
目录 一、EF Core 1. 使用的ORM框架(对象关系映射) 2. EFCore 常见两种模式 3. EFCore 提供程序 二、 EF 操作数据库(Code First) 1. 下载NuGet插件 2.创建模型类文件 3.创建DBContext文件 4.Programs.cs文件 5.appsettings.Devel…...
WebSocket 性能优化:从理论到实践
在前四篇文章中,我们深入探讨了 WebSocket 的基础原理、服务端开发、客户端实现和安全实践。今天,让我们把重点放在性能优化上,看看如何构建一个高性能的 WebSocket 应用。我曾在一个直播平台项目中,通过一系列优化措施,将单台服务器的并发连接数从 1 万提升到 10 万。 性能挑…...
我用AI学Android Jetpack Compose之入门篇(2)
我跑成功了第一个Compose应用,但我还是有很多疑问,请人工智能来解释一下吧。答案来自 通义千问 文章目录 1.请解释一下Compose项目的目录结构。根目录模块目录(通常是app)app/build.gradleapp/src/mainapp/src/main/uiapp/src/ma…...
在鸿蒙HarmonyOS 5中实现抖音风格的点赞功能
下面我将详细介绍如何使用HarmonyOS SDK在HarmonyOS 5中实现类似抖音的点赞功能,包括动画效果、数据同步和交互优化。 1. 基础点赞功能实现 1.1 创建数据模型 // VideoModel.ets export class VideoModel {id: string "";title: string ""…...
【快手拥抱开源】通过快手团队开源的 KwaiCoder-AutoThink-preview 解锁大语言模型的潜力
引言: 在人工智能快速发展的浪潮中,快手Kwaipilot团队推出的 KwaiCoder-AutoThink-preview 具有里程碑意义——这是首个公开的AutoThink大语言模型(LLM)。该模型代表着该领域的重大突破,通过独特方式融合思考与非思考…...
对WWDC 2025 Keynote 内容的预测
借助我们以往对苹果公司发展路径的深入研究经验,以及大语言模型的分析能力,我们系统梳理了多年来苹果 WWDC 主题演讲的规律。在 WWDC 2025 即将揭幕之际,我们让 ChatGPT 对今年的 Keynote 内容进行了一个初步预测,聊作存档。等到明…...
是否存在路径(FIFOBB算法)
题目描述 一个具有 n 个顶点e条边的无向图,该图顶点的编号依次为0到n-1且不存在顶点与自身相连的边。请使用FIFOBB算法编写程序,确定是否存在从顶点 source到顶点 destination的路径。 输入 第一行两个整数,分别表示n 和 e 的值(1…...
10-Oracle 23 ai Vector Search 概述和参数
一、Oracle AI Vector Search 概述 企业和个人都在尝试各种AI,使用客户端或是内部自己搭建集成大模型的终端,加速与大型语言模型(LLM)的结合,同时使用检索增强生成(Retrieval Augmented Generation &#…...
浪潮交换机配置track检测实现高速公路收费网络主备切换NQA
浪潮交换机track配置 项目背景高速网络拓扑网络情况分析通信线路收费网络路由 收费汇聚交换机相应配置收费汇聚track配置 项目背景 在实施省内一条高速公路时遇到的需求,本次涉及的主要是收费汇聚交换机的配置,浪潮网络设备在高速项目很少,通…...
C#中的CLR属性、依赖属性与附加属性
CLR属性的主要特征 封装性: 隐藏字段的实现细节 提供对字段的受控访问 访问控制: 可单独设置get/set访问器的可见性 可创建只读或只写属性 计算属性: 可以在getter中执行计算逻辑 不需要直接对应一个字段 验证逻辑: 可以…...
【Redis】笔记|第8节|大厂高并发缓存架构实战与优化
缓存架构 代码结构 代码详情 功能点: 多级缓存,先查本地缓存,再查Redis,最后才查数据库热点数据重建逻辑使用分布式锁,二次查询更新缓存采用读写锁提升性能采用Redis的发布订阅机制通知所有实例更新本地缓存适用读多…...
JS手写代码篇----使用Promise封装AJAX请求
15、使用Promise封装AJAX请求 promise就有reject和resolve了,就不必写成功和失败的回调函数了 const BASEURL ./手写ajax/test.jsonfunction promiseAjax() {return new Promise((resolve, reject) > {const xhr new XMLHttpRequest();xhr.open("get&quo…...
Spring AI Chat Memory 实战指南:Local 与 JDBC 存储集成
一个面向 Java 开发者的 Sring-Ai 示例工程项目,该项目是一个 Spring AI 快速入门的样例工程项目,旨在通过一些小的案例展示 Spring AI 框架的核心功能和使用方法。 项目采用模块化设计,每个模块都专注于特定的功能领域,便于学习和…...
