CentOS 8 服务器上使用 yum 安装配置 MySQL 8.0 的保姆级教程

本文详细介绍如何在CentOS8中安装MySQL8,并配置密码,开启远程连接功能。此外还介绍了自定义Linux命令的方法。

一、安装

Centos 8 中默认情况下是没有 MySQL 8 的软件资源的,需要使用官网的 rpm 资源添加 yum 源。按照 MySQL >> DOWNLOADS >> MySQL Community (GPL) Downloads >> MySQL Yum Repository 的顺序进入 RedHat/Centos 的 yum 源下载页面。
在这里插入图片描述
点击第一个 Download 根据引导进行下载然后上传到服务器就下载成功了,或者使用

wget https://dev.mysql.com/get/mysql80-community-release-el8-1.noarch.rpm

直接在服务器上下载。(注:以下图片中 lh 及其他 scs 、 scst 为自定义命令,设置方法文末会进行简单说明。lh = ls -h)
在这里插入图片描述
之后用 rpm 安装之后更新一下 yum 源就可以通过 yum 直接安装 MySQL 了。

 rpm -ivh mysql80-community-release-el8-1.noarch.rpm 

在这里插入图片描述

 yum update

下面开始安装 MySQL :

 yum install mysql
 yum install mysql-server

在这里插入图片描述
安装完成,默认服务名为 mysqld ,启动并查看 mysql 状态(注:scs=systemctl status,scst=systemctl start):
在这里插入图片描述

二、配置密码

这里提一下,截止此文章发布前的 MySQL 最新版本在使用 yum 安装的时候默认是使用的空密码进行创建 root 账户,所以启动 mysqld 服务后第一次进入数据库直接使用 mysql -uroot 命令就可以登入数据库,然后直接修改密码,不过为了防止如果有人遇见 mysqld 启动后有密码,这里也放出查看初始密码的方法:

cat /var/log/mysql/mysqld.log | grep password

这里是没有初始密码的所以会显示空密码:
在这里插入图片描述
有初始密码的情况显示如下(密码为 root@localhost: 后面的字符串)然后使用 mysql -uroot -p 回车输入密码即可进入:
在这里插入图片描述
下图为空密码情况下成功进入数据库:
在这里插入图片描述
由于保存用户信息等配置的数据保存在 mysql 库中,所以需要先使用 use mysql 切换到 mysql 库以修改密码。
在这里插入图片描述
最新版本的 MySQL 使用以下命令修改密码:

 ALTER USER 'root'@'localhost' IDENTIFIED BY '这里填入自己的密码';

之后最好使用 flush privileges; 刷新数据库,否则可能出现密码修改失败却没发现,退出数据库后初始状态消除不再支持无密码登录而无法登录数据库的情况。

设置完成后退出再次使用 mysql -uroot -p 命令回车并输入密码(密码输入时不会显示输入内容,只要确保密码输入正确就行)后,成功进入数据库则密码配置成功。
在这里插入图片描述

三、远程连接

MySQL 默认是不支持外部远程连接的,故需要手动开启远程功能,如下图:
在这里插入图片描述
依旧是使用 use mysql 进入 mysql 库,修改 mysql 库中的 user 表,将 host 项,从 localhost 改为 % 。 % 这里表示的是允许任意 host 访问,如果只允许某一个 ip 访问,则可改为相应的 ip 。

 update user set host = '%' where user = 'root';

依旧使用 flush privileges; 命令刷新缓存,此时再次测试连接,可以发现已经连接成功了。在这里插入图片描述

四、额外知识点:自定义Linux命令

Linux 支持自定义命令以精简命令并支持临时以及永久两种方式。

第一种临时自定义命令的方式,直接使用 alias 关键字即可设置自定义命令。

 alias scs = 'systemctl status '

自定义命令本质上就是将原始命令打包并将其命名,然后使用该命名替代原始命令,例如上图,scs mysqld 等价于 systemctl status mysqld

而永久设置自定义命令的方式,就是直接使用 vim 修改 root 目录下的 .bashrc 文件,

 vim ~/.bashrc

在这里插入图片描述
escwq 保存退出,然后使用 source ~/.bashrc 命令刷新缓存即可生效。

<think>首先,用户的问题是:在Linux系统中安装MySQL 8.0时出现mysql-5.7.20-1.el7.x86_64.rpm-bundle.tar这个tar包的含义。用户在询问这个tar包的含义,尤其是在安装MySQL 8.0的上下文中。 我需要参考用户提供的引用: - 引用[1]:提到mysql rpm bundle.tar,讨论的是MySQL 8.0.19的安装- 引用[2]:MySQL 8.0.40安装教程- 引用[3]:CentOS 7.6使用MySQL 8.0.31rpm-bundle.tar安装- 引用[4]:MySQL 8.0.33的安装。 所有这些引用都涉及到MySQL 8.0版本的rpm-bundle.tar文件,但用户提到的是mysql-5.7.20-1.el7.x86_64.rpm-bundle.tar,这是MySQL 5.7.20版本。用户说在安装MySQL 8.0时出现这个包,这听起来矛盾。 用户的问题是理解这个tar包的含义。tar包是压缩存档文件,包含多个文件。在MySQL的上下文中,rpm-bundle.tar文件通常包含所有必要的RPM包,用于安装MySQL。 关键点是:用户指定了mysql-5.7.20-1.el7.x86_64.rpm-bundle.tar,但上下文是安装MySQL 8.0。这可能是一个错误或混淆。用户可能在描述一个场景,比如在安装过程中提到旧版本,或者这是一个误述。 回顾用户消息:"我想了解在Linux系统中安装MySQL 8.0时出现的mysql-5.7.20 - 1.el7.x86_64.rpm - bundle.tar这个tar包的含义"。所以,用户在安装MySQL 8.0时,遇到了这个5.7.20版本的tar包,并想知道它的含义。 可能的原因: - 用户在下载或过程中混淆了版本。 -安装过程中,系统可能依赖旧版本或有残留文件。 - 或者这是一个错误,用户意在询问MySQL 8.0的类似包。 基于系统指令: - 所有行内数学表达式使用$...$。 - 独立公式用$$...$$。 - 语法正确。 - 使用中文回答。 - 生成相关问题。 - 回答中引用的段落末尾自然地添加引用标识。 回答结构: 1. **解释tar包的含义**:首先解释什么是rpm-bundle.tar文件。它是MySQL官方提供的归档文件,包含多个RPM包,用于在基于RPMLinux系统如CentOS安装MySQL。 2. **针对版本差异**:指出用户提到的版本是5.7.20,但上下文是安装8.0。这可能表示用户在下载包时可能选择了错误的链接,或者在系统中存在旧版本残留。 3. **含义**:这个tar包包含了MySQL 5.7.20的所有组件,如服务器、客户端、库等,打包为RPM文件。 4. **为什么在安装8.0时出现**:可能的原因包括下载错误、配置错误,或系统中有旧版本冲突。建议用户检查下载的包是否正确。 5. **参考引用**:用户提供的引用是关于MySQL 8.0安装,所以我应该指向这些引用来说明正确安装过程。例如,引用[3]提到解压tar包到特定目录。 6. **澄清**:强调在安装MySQL 8.0时,应该使用相应版本的tar包,如mysql-8.0.x-1.el7.x86_64.rpm-bundle.tar。 具体回答: - 定义:mysql-5.7.20-1.el7.x86_64.rpm-bundle.tar是一个压缩存档文件,包含MySQL 5.7.20版本的多个RPM安装包。 - 用途:用于在CentOS 7等基于RPM的系统上安装MySQL- 为什么出现在8.0安装中:可能用户下载了错误的包,或安装脚本引用了旧版本。建议下载正确的MySQL 8.0 bundle。 - 安装建议:参考用户提供的引用[2]或[3],它们描述了正确的安装步骤。 生成相关问题: - 基于系统指令,我需要生成相关问题。问题应该与主题相关。 - 可能的主题:MySQL安装、版本管理、错误解决。 - 相关问题: 1. 如何正确下载MySQL 8.0rpm-bundle.tar包? 2.安装MySQL 8.0时如何避免版本冲突? 3. MySQL 5.7和8.0的主要区别是什么? 确保中文回答:整个回答用中文撰写。 添加引用标识:在回答中引用的部分末尾添加[^n]。例如,如果提到解压过程,引用[3]。 回答结构: - 开头直接回答问题。 - 解释tar包。 - 澄清版本问题。 - 给出建议。 - 列出相关问题。 </think>### mysql-5.7.20-1.el7.x86_64.rpm-bundle.tar包的含义解析 在Linux系统中安装MySQL 8.0时,您提到的`mysql-5.7.20-1.el7.x86_64.rpm-bundle.tar`文件是一个**MySQL 5.7.20版本的RPM包归档文件**。尽管您当前的目标是安装MySQL 8.0,但这个包的出现可能源于下载错误、系统残留或配置失误。下面我将逐步解释其含义、原因和解决方法。 #### 1. **tar包的基本含义** - `mysql-5.7.20-1.el7.x86_64.rpm-bundle.tar`是一个**压缩归档文件**(tar格式),专门用于基于RPM包管理器的Linux发行版(如CentOS 7)。 - 文件名分解: - `mysql-5.7.20`: 表示MySQL的版本号为5.7.20(这是MySQL的旧版本)。 - `el7.x86_64`: 表示适用于CentOS 7或RHEL 7系统的64位架构。 - `rpm-bundle`: 表示文件内包含多个RPM包(如服务器、客户端、库等组件),打包成一个bundle(捆绑包)。 - `.tar`: 是标准的归档格式。 - 作用:解压后会得到一组RPM安装包,便于批量安装MySQL 5.7.20组件。例如: - `mysql-community-server-5.7.20-1.el7.x86_64.rpm`(服务器核心) - `mysql-community-client-5.7.20-1.el7.x86_64.rpm`(客户端工具) - 其他依赖库和工具。 #### 2. **为什么在MySQL 8.0安装中出现?** - **常见原因**: - **下载错误**:您可能无意中从官方或第三方源下载了旧版本的包(例如,MySQL官网归档页面可能同时列出多个版本)。 - **系统残留**:如果系统中曾安装MySQL 5.7,其配置文件或缓存可能导致安装脚本引用旧包。 - **依赖冲突**:MySQL 8.0安装时,系统可能尝试兼容旧版本组件,但实际MySQL 8.0与5.7的依赖不兼容。 - **路径混淆**:安装教程或脚本错误指定了旧版本包的路径(类似引用[3]中提到的`/mysql8031`目录操作)[^3]。 - **这不是正常现象**:安装MySQL 8.0使用对应版本的bundle,如`mysql-8.0.x-1.el7.x86_64.rpm-bundle.tar`(例如引用[2]和[3]中的8.0.408.0.31)[^2][^3]。强行使用5.7.20包会导致安装失败或版本冲突。 #### 3. **如何解决和正确安装MySQL 8.0** - **验证下载源**: -MySQL官方网站下载正确的8.0 bundle包(如`mysql-8.0.40-1.el7.x86_64.rpm-bundle.tar`)。 - 参考引用[2]的“下载安装”步骤,确保文件名匹配目标版本[^2]。 - **清理旧版本**: - 使用命令卸载残留的MySQL 5.7包: ```bash sudo yum remove mysql-community-* ``` - 删除相关目录(如`/var/lib/mysql`),避免冲突(类似引用[4]提到的权限问题)[^4]。 - **正确安装步骤**: 1. 创建解压目录:`mkdir /mysql80 && cd /mysql80` 2. 下载并解压8.0 bundle:`tar -xf mysql-8.0.x-1.el7.x86_64.rpm-bundle.tar -C /mysql80` 3. 按顺序安装RPM包(服务器、客户端等),如引用[3]的示例[^3]。 - **注意**:MySQL 8.0与5.7安装不兼容,务必使用全新环境。 #### 4. **总结含义** `mysql-5.7.20-1.el7.x86_64.rpm-bundle.tar`是MySQL 5.7.20的归档安装包,**并非MySQL 8.0的组成部分**。它在您的安装中出现可能是操作失误的提示。正确做法是切换到MySQL 8.0的bundle文件(如引用[2]的保姆教程)[^2],以避免版本混乱。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

爱吃芒果的芬里尔狼

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

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

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

打赏作者

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

抵扣说明:

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

余额充值