[Linux]Mysql9.0.1服务端脱机安装配置教程(redhat)

news/2025/1/12 14:29:53/

前言

本教程适用于在yum源不可用的LInux主机上安装Mysql的场景。
以redhat系主机做操作示例,debian系主机可参照步骤,将对应的rpm -ivh命令换成dpkg -i

1. 官网下载安装包

https://dev.sql>mysql.com/downloads/sql>mysql/

1.1 版本分类

MySQL Enterprise Edition:企业版(收费)
MySQL Cluster CGE:高级集群版(收费)
MySQL Community Edition:社区版(开源免费,但官方不提供技术支持)
一般我们使用社区版的。
在该页面中,可以选择5.0到9.0的各历史版本:https://downloads.sql>mysql.com/archives/community/
安装版本选择

1.2 查看主机版本

我使用的是redhat系的Linux服务器,因此Operating System(操作系统)一项选择“RedHat”。
OS Version一项有以下多个版本可选:
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个安装包。

  • sql>mysql-community-client-9.0.1-1.el8.x86_64.rpm
  • sql>mysql-community-client-plugins-9.0.1-1.el8.x86_64.rpm
  • sql>mysql-community-common-9.0.1-1.el8.x86_64.rpm
  • sql>mysql-community-icu-data-files-9.0.1-1.el8.x86_64.rpm
  • sql>mysql-community-libs-9.0.1-1.el8.x86_64.rpm
  • sql>mysql-community-server-9.0.1-1.el8.x86_64.rpm

注:虽然我们只想安装Mysql服务端(即Mysql-server),但它依赖于其他的包,如果单独安装sql>mysql-server,也会提示你安装其他的包,如下图所示。
安装<a class=sql>mysql-server需要其他包" />

二、在服务器上安装

2.1 按顺序安装

将6个安装包上传到服务器上。按照如下顺序安装。

sudo rpm -ivh sql>mysql-community-common-9.0.1-1.el8.x86_64.rpm 
sudo rpm -ivh sql>mysql-community-client-plugins-9.0.1-1.el8.x86_64.rpm 
sudo rpm -ivh sql>mysql-community-libs-9.0.1-1.el8.x86_64.rpm
sudo rpm -ivh sql>mysql-community-client-9.0.1-1.el8.x86_64.rpm
sudo rpm -ivh sql>mysql-community-icu-data-files-9.0.1-1.el8.x86_64.rpm
sudo rpm -ivh  sql>mysql-community-server-9.0.1-1.el8.x86_64.rpm

2.2 安装完成后初步检查安装情况

输入如下命令

whereis sql>mysql
whereis sql>mysqld

如果返回的路径是空的,那么说明安装还有问题,请自己查看安装过程中的报错,常见的是安装顺序不对引起的安装失败。
如果返回了路径非空,说明sql>mysql已经安装上了,如下图所示。
<a class=sql>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指定了sql>mysqld的日志路径,在这个日志中记录了sql>mysql服务端启动与运行时的相关异常信息,可以改到用户家目录下,或者保持原路径不变也可以。
注:修改该文件需要sudo权限。

sql>mysql_84">3.3 初始化sql>mysql

sql>mysqld --initialize

这个命令没有返回的内容。我们可以通过ls命令查看data目录是否生成文件,来初步确认命令是否创建成功。

ls data

看到如下内容:
ls查看data路径下的文件
如果使用ls命令查看到data目录下是空的,那么请检查data路径的权限,可参照以下命令进行权限和所有组的更改。

chmod 755 data
chown -R wingaso:wingaso data

3.4 所有者修改

如果你当前用户名是sql>mysql,那么你可以跳过本次操作。
否则必须进行修改,因为sql>mysql安装后默认所有者所有组均为sql>mysql(如下图所示),如果不修改,会导致sql>mysql因权限问题无法正常启动。
默认所有者所有组为<a class=sql>mysql" />
默认所有者所有组为<a class=sql>mysql" />
如下图,所有者问题,会导致sock.lock文件无法创建,sql>mysqld启动失败。
sock.lock文件无法创建

3.4.1 目录/文件所有者修改

cd /var/run/
sudo chown -R wingaso:wingaso sql>mysql*
cd /var/lib/
sudo chown -R wingaso:wingaso sql>mysql*
cd /var/log/
sudo chown -R wingaso:wingaso sql>mysql*

将以上命令粘贴执行即可,注意修改需要sudo权限。
修改后可以通过ls -l命令查看所有者变更情况:

ls -l /var/run/
ls -l /var/lib/
ls -l /var/log/

sql>mysqldservice_123">3.4.2 sql>mysqld.service所有者修改

sudo vi /usr/lib/systemd/system/sql>mysqld.service

这个文件中User和Group默认为"sql>mysql",如果你的当前用户名不是sql>mysql,那么以服务方式启动sql>mysql将会报错。需要将其中的User和Group改为当前用户名,如下图所示。

修改<a class=sql>mysqld.service" />

修改后保存,再使用如下语句重新加载配置。

sudo systemctl daemon-reload

sql>mysql_136">3.5 启动sql>mysql

sudo systemctl restart sql>mysqld

如果上边的步骤都操作无误,那么将会成功运行起来,否则将会出现以下报错。
<a class=sql>mysql启动报错" />

3.5.1 运行报错处理

运行建议命令

sudo systemctl status sql>mysqld.service

你应该会看到类似以下的报错信息
<a class=sql>mysqlq启动报错" />
对于该信息,其中我们只能初步得知是权限问题,但想单从这个报错中看出是哪里的权限问题,简直是天方夜谭。
关键还是得看sql>mysqld.log文件中的详细报错信息。

tail -n 500 /var/log/sql>mysqld.log

注:如果你在配置my.cnf时,已将error-log改为了自定义路径,请在对应路径查看日志信息。

3.6 安全配置

3.6.1 获取初始密码

在运行sql>mysqld --initialize后,初始密码会保存在sql>mysqld.log文件中,通过以下命令可以找出该密码。

grep 'temporary password' /var/log/sql>mysqld.log

执行结果如下图所示。
查找初始密码
注:如果sql>mysqld --initialize执行过多次,那么可能会查找出多个初始密码,应以最后一个初始密码为准。

3.6.2 进行安全配置

sudo sql>mysql_secure_installation

运行该命令,会提示输入密码,将刚刚获取到的初始密码输入,便可进入配置对话。
该命令会对以下几个内容进行设置:

  • 为root用户设置密码
  • 删除匿名账号
  • 取消root用户远程登录
  • 删除test库和对test库的访问权限
  • 刷新授权表使修改生效

请根据实际情况进行设置。
注:如果运行该命令,出现如下报错(Can’t connect to local Mysql server through socket ‘/var/lib/sql>mysql/sql>mysql.sock’),那么一般是sql>mysql没有启动引起的,请参照3.5节启动sql>mysql,再宠幸执行该命令。
运行安全配置报错

四、验证

sql>mysql -uroot -p
<输入密码>
show databases;

如果能够成功登录到sql>mysql并进行数据库操作,说明sql>mysql已经安装完成。安装配置便大功告成了。

五、其他

如果需要主从部署,那么需要在主从主机上按照以上步骤将Mysql安装完成后,再对Mysql进行专门的主从配置。这部分将会在另一篇文章中细说,敬请期待。

参考

MySQL 在 Windows 下安装教程、避坑指南
Mysql安全启动配置向导——sql>mysql_secure_installation(生产环境必做的设置)


http://www.ppmy.cn/news/1562532.html

相关文章

牛客网刷题 ——C语言初阶(5操作符)——BC90 矩阵计算

1. 题目描述&#xff1a;BC90 矩阵计算 牛客网OJ链接 输入NxM矩阵&#xff0c;矩阵元素均为整数&#xff0c;计算其中大于零的元素之和。 输入描述: 第一行为N M(N: 矩阵行数&#xff1b;M: 矩阵列数,且M,N10)&#xff0c;接下来的N行为矩阵各行。 输出描述:一行&#xff0c;…

点赞系统设计(微服务)

点赞业务是一个常见的社交功能&#xff0c;它允许用户对其他用户的内容&#xff08;如帖子、评论、图片等&#xff09;表示喜欢或支持。在设计点赞业务时&#xff0c;需要考虑以下几个方面&#xff1a; 一、业务需求 点赞业务需要满足以下特性&#xff1a; 通用&#xff1a;…

《拉依达的嵌入式\驱动面试宝典》—计算机网络篇(一)

《拉依达的嵌入式\驱动面试宝典》—计算机网络篇(一) 你好,我是拉依达。 感谢所有阅读关注我的同学支持,目前博客累计阅读 27w,关注1.5w人。其中博客《最全Linux驱动开发全流程详细解析(持续更新)-CSDN博客》已经是 Linux驱动 相关内容搜索的推荐首位,感谢大家支持。 《…

基于华为ENSP的OSPF不规则区域划分深入浅出(5)

本篇技术博文摘要 &#x1f31f; OSPF不规则区域划分及其问题解决方案涉及多个技术手段&#xff0c;包括隧道、虚链路和路由重发布等。合理的网络设计和配置对于避免网络中出现的环路问题至关重要。通过多进程双向重发布等方式&#xff0c;能够有效地优化路由协议的互通性和网络…

人工智能之基于阿里云快速搭建Llama-3.2-11B-Vision-Instruct

人工智能之基于阿里云快速搭建Llama-3.2-11B-Vision-Instruct 需求描述 基于阿里云搭建图片生成文字模型&#xff0c;模型名称&#xff1a;LLM-Research/Llama-3.2-11B-Vision-Instruct使用上述模型输入图片生成文字&#xff0c;模型路径 业务实现 阿里云配置 阿里云配置如…

数据库事务:确保数据一致性的关键机制

1. 什么是数据库事务 定义&#xff1a;事务&#xff08;Transaction&#xff09;是数据库管理系统中的一个逻辑工作单元&#xff0c;用于确保一组相关操作要么全部成功执行&#xff0c;要么全部不执行&#xff0c;从而维护数据的一致性和完整性。重要性&#xff1a;在多用户环…

iOS实际开发中使用Alamofire实现多文件上传(以个人相册为例)

引言 在移动应用中&#xff0c;图片上传是一个常见的功能&#xff0c;尤其是在个人中心或社交平台场景中&#xff0c;用户经常需要上传图片到服务器&#xff0c;用以展示个人风采或记录美好瞬间。然而&#xff0c;实现多图片上传的过程中&#xff0c;如何设计高效的上传逻辑并…

夯实前端基础之HTML篇

知识点概览 HTML部分 1. DOM和BOM有什么区别&#xff1f; DOM&#xff08;Document Object Model&#xff09; 当网页被加载时&#xff0c;浏览器会创建页面的对象文档模型&#xff0c;HTML DOM 模型被结构化为对象树 用途&#xff1a; 主要用于网页内容的动态修改和交互&…