[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一项有以下多个版本可选:
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,也会提示你安装其他的包,如下图所示。
安装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已经安装上了,如下图所示。
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路径下的文件
如果使用ls命令查看到data目录下是空的,那么请检查data路径的权限,可参照以下命令进行权限和所有组的更改。

chmod 755 data
chown -R wingaso:wingaso data

3.4 所有者修改

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

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改为当前用户名,如下图所示。

修改mysqld.service

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

sudo systemctl daemon-reload

3.5 启动mysql

sudo systemctl restart mysqld

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

3.5.1 运行报错处理

运行建议命令

sudo systemctl status mysqld.service

你应该会看到类似以下的报错信息
mysqlq启动报错
对于该信息,其中我们只能初步得知是权限问题,但想单从这个报错中看出是哪里的权限问题,简直是天方夜谭。
关键还是得看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(生产环境必做的设置)

当前最新的 MySQL 版本并未达到 9.0.1,官方发布的稳定版本为 8.x 系列[^1]。对于更高版本的信息并不准确,因此无法提供针对 MySQL 9.0.1 的具体安装配置指南。 然而,可以基于现有最高版本来介绍 MySQL安装流程: ### 使用 Docker 安装 MySQL #### 拉取 MySQL 镜像 为了简化部署过程并确保兼容性,推荐使用 Docker 来安装 MySQL。首先需要从 Docker Hub 上获取最新版的 MySQL 镜像: ```bash docker pull mysql:latest ``` #### 启动 MySQL 容器 接着创建一个新的容器实例,并设置必要的参数如端口映射、环境变量等: ```bash docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag ``` 此处 `some-mysql` 是自定义名称;`my-secret-pw` 应替换为你自己的 root 密码;`mysql:tag` 中 tag 可指定特定版本号(例如 5.7 或者 8.0),但请注意实际可用标签需参照官方文档确认[^2]。 #### 数据库初始化与安全加固 初次启动后应当立即执行一些基础的安全措施,比如修改默认账户密码强度策略、删除匿名用户账号等操作。可以通过进入正在运行中的容器内部完成这些任务: ```bash docker exec -it some-mysql bash mysql_secure_installation ``` #### 实现数据持久化存储 为了避免因容器重启而导致的数据丢失问题,在启动命令中加入卷挂载选项即可解决此顾虑: ```bash -v /path/to/datadir:/var/lib/mysql ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wingaso

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值