
MySQL 是一个基于SQL(结构化查询语言)的关系型数据库管理系统,它是使用它的几个众所周知的应用程序中使用最广泛的数据库软件之一,MySQL 用于数据仓库、电子商务和日志记录应用程序,但其最常用的功能是 Web 数据库存储和管理。
AlmaLinux 在其 AppStream 中带有 MySQL,但是,它不是最新版本。
在以下教程中,您将学习如何使用 AppStream 或来自 AlmaLinux 8 上 MySQL 存储库的最新社区版本 RPM 安装 MySQL 8.0。
前提条件
推荐操作系统:AlmaLinux 8。 用户帐户:具有sudo 权限 或 root 访问权限(su 命令)的用户帐户 。
更新操作系统
更新您的 AlmaLinux 操作系统以确保所有现有软件包都是最新的:
sudo dnf upgrade --refresh -y
本教程将使用 sudo 命令 并 假设您有 sudo status。
要验证您帐户的 sudo 状态:
sudo whoami
显示 sudo 状态的示例输出:
[joshua@localhost ~]$ sudo whoami
root
要使用 root 帐户,请使用以下命令和 root 密码登录。
su
选项 1. 使用 AppStream 安装 MySQL 8.0
默认情况下,MySQL 8.0 可作为 AlmaLinux 中的默认选择,并且完全是最新的,首先,使用以下命令验证是否有任何其他版本可用。
sudo dnf module list mysql
示例输出:

目前,在本教程的时间,只有 MySQL 8.0 可用,并且是带有[d] 标志的默认值 。
由于某种原因,您还没有启用 MySQL 8,请使用以下命令。
sudo dnf module enable mysql:8.0 -y
使用以下终端命令继续安装。
sudo dnf install mysql
示例输出:

输入 Y, 然后按 ENTER 键 继续安装。
重新运行安装命令重新开始。
安装完成后,使用–version 命令验证安装 。
mysql --version
示例输出:

接下来,使用以下命令启用 MySQL 8。
sudo systemctl enable mysqld --now
上述命令将在您当前的会话中激活 MySQL,并在未来的系统上自动重新启动。
选项 2. 安装 MySQL 8.0 社区版(最新)
对于需要最新 MySQL 8.0 或任何替代版本的用户,使用以下步骤将实现此目的。
请注意,在本教程中,AppStream 与 MySQL RPM 的最新版本之间的差异很小,对于大多数人来说,AppStream 会更理想。
首先,使用以下命令导入官方 MySQL 8.0 Community RPM。
sudo rpm -ivh https://dev.mysql.com/get/mysql80-community-release-el8-2.noarch.rpm
接下来,通过从 dnf repolist 打印出来来验证存储库是否已成功添加。
dnf repolist all | grep mysql | grep enabled
示例输出:

接下来,安装 MySQL 8 社区服务器。以下命令将禁用 App Stream 版本并启用社区版。
sudo dnf install --disablerepo=appstream mysql-community-server
示例输出:

输入 Y, 然后按 ENTER 键 继续安装。
请注意,系统会要求您 导入 GPG 密钥(Type Y) 以完成安装。
例子:

接下来,确认版本构建,这也将验证安装是否成功。
mysql --version
示例输出:
mysql Ver 8.0.27 for Linux on x86_64 (MySQL Community Server - GPL)
接下来,使用以下命令启用 MySQL 8。
sudo systemctl enable mysqld --now
上述命令将在您当前的会话中激活 MySQL,并在未来的系统上自动重新启动。
检查 MySQL 8 服务器状态
默认情况下,安装程序将自动启动您的 MySQL 服务,并将自身配置为在系统启动时自动启动,要在安装后验证您的 MySQL 服务是否正常运行,请键入以下 systemctl 命令:
systemctl status mysql
示例输出:

停止 MySQL 服务:
sudo systemctl stop mysqld
启动 MySQL 服务:
sudo systemctl start mysqld
要在系统启动时禁用 MySQL 服务:
sudo systemctl disable mysqld
在系统启动时启用 MySQL 服务:
sudo systemctl enable mysqld
要重新启动 MySQL 服务:
sudo systemctl restart mysqld
使用安全脚本保护 MySQL 8
在 全新安装 MySQL 时,大多数标准都认为默认设置很弱,并会引起人们对可能允许入侵或利用黑客的担忧。一个解决方案是运行MySQL 安装附带的安装安全脚本 。
首先,使用以下命令启动 (mysql_secure_installation):
sudo mysql_secure_installation
默认情况下,root 密码应为空,如果由于某种原因设置了密码,请使用以下命令生成临时密码以登录 MySQL 安全脚本,并在设置过程中设置新密码。
sudo grep 'temporary password' /var/log/mysqld.log
系统会提示你输入你的 root密码,然后 你会看到一个关于VALIDATE PASSWORD COMPONENT的问题;这是设置密码复杂性检查;大多数情况下,默认值就可以了。
接下来,请按照以下步骤操作:
设置 root 帐户的密码。 设置 帐户的密码 强度。 删除可从本地主机外部访问的 root 帐户。 删除匿名用户帐户。 删除测试数据库,默认情况下匿名用户可以访问该数据库。
请注意,您使用 (Y) 删除所有内容。此外,如果您愿意,您可以通过创建一个新密码来重置您的 root 密码;如果需要,您可以跳过此步骤,因为您已经在初始安装期间使用弹出窗口设置了它。
例子:
[joshua@almalinux ~]$ mysql_secure_installation
Securing the MySQL server deployment.
Enter password for user root:
The existing password for the user account root has expired. Please set a new password.
New password: <---- SET NEW PASSWORD
Re-enter new password: <---- RE-ENTER NEW PASSWORD
Re-enter new password:
The 'validate_password' component is installed on the server.
The subsequent steps will run with the existing configuration
of the component.
Using existing password for root.
Estimated strength of the password: 100
Change the password for root ? ((Press y|Y for Yes, any other key for No) : Y <---- Type Y then press the ENTER KEY (SKIP IF YOU ALREADY JUST SET)
New password:
Re-enter new password:
Estimated strength of the password: 100
Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) : Y <---- Type Y then press the ENTER KEY.
By default, a MySQL installation has an anonymous user,
allowing anyone to log into MySQL without having to have
a user account created for them. This is intended only for
testing, and to make the installation go a bit smoother.
You should remove them before moving into a production
environment.
Remove anonymous users? (Press y|Y for Yes, any other key for No) : Y <---- Type Y then press the ENTER KEY.
Success.
Normally, root should only be allowed to connect from
'localhost'. This ensures that someone cannot guess at
the root password from the network.
Disallow root login remotely? (Press y|Y for Yes, any other key for No) : Y <---- Type Y then press the ENTER KEY.
Success.
By default, MySQL comes with a database named 'test' that
anyone can access. This is also intended only for testing,
and should be removed before moving into a production
environment.
Remove test database and access to it? (Press y|Y for Yes, any other key for No) : Y <---- Type Y then press the ENTER KEY.
- Dropping test database...
Success.
- Removing privileges on test database...
Success.
Reloading the privilege tables will ensure that all changes
made so far will take effect immediately.
Reload privilege tables now? (Press y|Y for Yes, any other key for No) : Y <---- Type Y then press the ENTER KEY.
Success.
All done!
登录 MySQL 8 实例
现在您已经完成了安装后安装安全脚本, 可以使用以下命令登录到您的 MySQL数据库:
sudo mysql -u root -p
系统将提示您输入在安装设置或安装后安全脚本中设置的 root 密码。进入 MySQL 服务实例后,您可以执行以下命令作为测试以查看它的运行情况。
输入以下 SHOW DATABASE 命令:
SHOW DATABASES;
对于 MySQL 新手,所有命令都必须以“ ; ”结尾。”
例子:

要创建数据库,请使用以下命令。
CREATE DATABASE MYDATA;
要删除(删除)数据库,请使用以下命令。
DROP DATABASE MYDATA;
要退出终端,请键入以下 退出命令:
EXIT;
如何删除(卸载)MySQL 8
如果您不再希望使用 MySQL 数据库并希望将其完全删除,请执行以下命令:
sudo dnf remove mysql
示例输出:

键入 Y, 然后按 ENTER 键 继续卸载。
对于安装了 MySQL 8 社区版的用户,使用以下命令。
sudo dnf remove mysql-community-server
总结
在本教程中,您学习了如何在 AlmaLinux 8 上安装最新的 MySQL 8,此外,还提供了通过将用户线程映射到 CPU 来优化特定硬件上的特定工作负载的选项,仅举几例新功能。
总体而言,MySQL 8 在读/写工作负载、IO 密集型工作负载和高争用工作负载方面具有更好的性能,使用旧版本 MySQL 的用户应该考虑升级,因为性能提升是值得的。





