一:概述

这几天开始学习linux相关知识的内容,于是跟着视频学着怎么样再linux中安装这个mysql,发现这个安装过程较Windows安装还是有一些麻烦的。视频上讲的Mysql版本比较老,于是就想着下载一个比较新版本并且比较稳定的mysql8.4.3版本。本文将基于CentOS7平台安装这个版本的mysql进行详细的讲解。我将从官网下载到最终使用提供详细的过程。

CentOS7x86_64位RPM方式安装Mysql8.4.3详细过程以及安装过程中报错问题解决-----适合小白选手_perl

二:具体说明

<1>官网下载mysql安装包

对应mysql版本的下载地址

下载下方图片对应的安装包。

CentOS7x86_64位RPM方式安装Mysql8.4.3详细过程以及安装过程中报错问题解决-----适合小白选手_解压缩_02

CentOS7x86_64位RPM方式安装Mysql8.4.3详细过程以及安装过程中报错问题解决-----适合小白选手_mysql_03

如果你觉得这个过程比较繁琐,可以使用下面的链接去下载这个为你准备好的安装包。

Mysql-8.4.3X86_64安装包

<2>通过远程传输工具将这个压缩包传输到对应CentOS7服务器中

2.1 在linux服务器上的/usr/local目录中新建一个目录soft

mkdir /usr/local/soft

 2.2 通过原创传输工具将第一步下载好的压缩包传输到这个目录中

传输完成后,在/usr/locla/soft目录下通过ls命令查看是否有传输过来的这个文件

如果可以看到这个压缩包证明传输并且接收成功。

CentOS7x86_64位RPM方式安装Mysql8.4.3详细过程以及安装过程中报错问题解决-----适合小白选手_mysql_04

2.3 解压缩文件

2.3.1 在/usr/local/soft目录下,新建一个mysql的文件夹
mkdir /usr/local/soft/mysql
2.3.2 在这个mysql文件夹中新建一个mysql8的文件夹
mkdir /usr/local/soft/mysql/mysql8
2.3.3 通过tar命令来解压缩这个文件到这个mysql8文件夹中
tar -xvf mysql-8.4.3-1.el7.x86_64.rpm-bundle.tar -C /usr/local/soft/mysql/mysql8
 2.3.4 进入到mysql8文件夹中,通过ls命令查看解压缩是否成功
cd /usr/local/soft/mysql/mysql8
ls

如果通过命令查看到该目录下有以下的文件时,证明解压缩成功。

mysql-community-client-8.4.3-1.el7.x86_64.rpm
mysql-community-client-plugins-8.4.3-1.el7.x86_64.rpm
mysql-community-common-8.4.3-1.el7.x86_64.rpm
mysql-community-debuginfo-8.4.3-1.el7.x86_64.rpm
mysql-community-devel-8.4.3-1.el7.x86_64.rpm
mysql-community-embedded-compat-8.4.3-1.el7.x86_64.rpm
mysql-community-icu-data-files-8.4.3-1.el7.x86_64.rpm
mysql-community-libs-8.4.3-1.el7.x86_64.rpm
mysql-community-libs-compat-8.4.3-1.el7.x86_64.rpm
mysql-community-server-8.4.3-1.el7.x86_64.rpm
mysql-community-server-debug-8.4.3-1.el7.x86_64.rpm
mysql-community-test-8.4.3-1.el7.x86_64.rpm

CentOS7x86_64位RPM方式安装Mysql8.4.3详细过程以及安装过程中报错问题解决-----适合小白选手_mysql_05

2.3.5 解压缩mysql8这个文件夹中的压缩包

在正式解压缩之前需要做一些准备。

2.3.5.1 通过rpm -qa检测当前系统是否安装过mysql相关的数据库
rpm -qa | grep mysql

CentOS7x86_64位RPM方式安装Mysql8.4.3详细过程以及安装过程中报错问题解决-----适合小白选手_mysql_06

我的命令输入后显示了已经安装的相关文件。如果你未安装过,这个是不会显示相关的软件包的。

2.3.5.2 卸载mariadb软件

由于CentOS7中默认自带了数据库mariadb软件,所以为了避免后续安装过程中出现错误,所以需要卸载这个软件。可以通过rpm查看是否有这个文件然后通过相关命令删除这个软件包。详细的过程如下所示:

rpm -qa | grep mariadb

CentOS7x86_64位RPM方式安装Mysql8.4.3详细过程以及安装过程中报错问题解决-----适合小白选手_perl_07

由于我已经卸载了这个软件包,所以什么都没显示,正常情况下,你这块会显示有这个安装包的。

可以通过以下的命令去卸载这个安装包。

rpm -e --nodeps mariadb-libs-5.5.60-1.e17_5.x86_64

这些准备过程完成之后,就可以解压缩这个mysql8中的压缩包了。

 2.3.5.3 解压缩相关文件

通过以下的命令去解压缩

# 安装通用包
sudo rpm -ivh mysql-community-common-8.4.3-1.el7.x86_64.rpm
# 安装客户端插件
sudo rpm -ivh mysql-community-client-plugins-8.4.3-1.el7.x86_64.rpm
# 安装库文件
sudo rpm -ivh mysql-community-libs-8.4.3-1.el7.x86_64.rpm
sudo rpm -ivh mysql-community-libs-compat-8.4.3-1.el7.x86_64.rpm
# 安装icu数据文件
sudo rpm -ivh mysql-community-icu-data-files-8.4.3-1.el7.x86_64.rpm
# 安装开发包
sudo rpm -ivh mysql-community-devel-8.4.3-1.el7.x86_64.rpm
# 安装客户端工具
sudo rpm -ivh mysql-community-client-8.4.3-1.el7.x86_64.rpm
yum install net-tools
# 安装服务器包
sudo rpm -ivh mysql-community-server-8.4.3-1.el7.x86_64.rpm
# 如果有以下需求可以安装以下的包
# 调试包
sudo rpm -ivh mysql-community-server-debug-8.4.3-1.el7.x86_64.rpm
# 测试包
sudo rpm -ivh mysql-community-test-8.4.3-1.el7.x86_64.rpm
# 调试信息包
sudo rpm -ivh mysql-community-debuginfo-8.4.3-1.el7.x86_64.rpm

在安装 mysql-community-test-8.4.3-1.el7.x86_64.rpm 时遇到了依赖问题,这表明您的系统中缺少一些必要的 Perl 模块。为了解决这个问题,您需要先安装这些依赖项。以下是解决依赖问题的步骤:

1. 安装 Perl 依赖

首先,您需要安装 perl(JSON)perl(Test::More) 这两个 Perl 模块。如果您使用的是基于 Red Hat 的系统,可以使用 yum 来安装这些模块:

sudo yum install perl-JSON
sudo yum install perl-Test-More

如果您使用的是 dnf

sudo dnf install perl-JSON
sudo dnf install perl-Test-More
2. 再次尝试安装 RPM 包

安装了上述依赖后,再次尝试安装 mysql-community-test 包:

sudo rpm -ivh mysql-community-test-8.4.3-1.el7.x86_64.rpm
3. 处理签名警告

关于签名警告,您可以使用以下命令导入 MySQL 的官方 GPG 密钥:

sudo rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql

这将解决因缺少密钥而产生的警告问题。

注意:必须要按照这个顺序进行解压缩,要不然会报错,出现相关的依赖问题。

2.4 启动Mysql

MySQL安装完成之后,会自动注册为系统的服务,服务名为mysqld。那么,我们就可以通过systemctl指令来查看mysql的状态、启动mysql、停止mysql。

sudo systemctl status mysqld		查看mysql服务状态  
sudo systemctl start mysqld		启动mysql服务
sudo systemctl stop mysqld		停止mysql服务

使用这个命令时显示,认证失败,我这个使用的就是root用户。然后可以通过下面的方法进行解决。

CentOS7x86_64位RPM方式安装Mysql8.4.3详细过程以及安装过程中报错问题解决-----适合小白选手_解压缩_08

# systemctl status mysqld
Failed to get properties: Access denied
# whoami
root
# sestatus
SELinux status:                 enabled
SELinuxfs mount:                /sys/fs/selinux
SELinux root directory:         /etc/selinux
Loaded policy name:             targeted
Current mode:                   enforcing
Mode from config file:          enforcing
Policy MLS status:              enabled
Policy deny_unknown status:     allowed
Max kernel policy version:      31
# setenforce 0
# ausearch -m avc
<no matches>
# systemctl restart systemd
Failed to restart systemd.service: Unit not found.
# systemctl daemon-reload

出现 "Failed to get properties: Access denied" 的错误通常意味着在尝试查看服务状态时没有足够的权限。由于您已经在提示符中显示了 [root@zhuyue mysql8]#,这表明您已经是以 root 用户身份登录的,理论上不应该出现权限问题。

但是,如果系统配置或策略限制了 root 用户执行某些操作,可能会遇到这个问题。以下是一些可能的解决方案:

1. 检查是否有 AppArmor 或 SELinux 策略限制

如果系统使用 AppArmor 或 SELinux,可能需要检查相关的安全策略是否阻止了 systemctl 命令。

  • 对于 AppArmor,您可以检查 /etc/apparmor.d/ 下的相关配置文件。
  • 对于 SELinux,您可以使用 sestatus 查看当前的状态,或者查看 /etc/selinux/ 下的相关配置文件。
2. 确认 systemd 是否正确安装和配置

确保 systemd 已经正确安装并且没有被禁用。可以尝试重新启动 systemd 服务:

sudo systemctl daemon-reload
3. 检查是否有其他限制

某些系统管理工具,如 nscd(Name Service Caching Daemon),可能会影响 systemctl 的行为。确保这些服务没有干扰到 systemctl

4. 使用 service 命令作为替代

如果 systemctl 命令不可用,您可以尝试使用较旧的 service 命令来查看 MySQL 服务的状态:

service mysqld status

或者,如果您使用的是 service 命令的 status 选项:

sudo service mysqld status

通过解决之后,再次使用命令发现就可以查看了。

systemctl status mysqld.service

CentOS7x86_64位RPM方式安装Mysql8.4.3详细过程以及安装过程中报错问题解决-----适合小白选手_mysql_09

然后通过以下命令来启动这个mysql数据库。

systemctl start mysqld
systemctl status mysqld.service

CentOS7x86_64位RPM方式安装Mysql8.4.3详细过程以及安装过程中报错问题解决-----适合小白选手_解压缩_10

最后就成功启动了。到此为止这个全部的过程就完成了。希望这篇文章对你有所帮助!!!

记得关注和点赞哦!!