如何在CentOS 7上安装MySQL

介绍

MySQL是一个开源数据库管理系统,通常作为流行的LEMP(Linux、Nginx、MySQL/MariaDB、PHP/Python/Perl)堆栈的一部分安装。它使用关系数据库和SQL(结构化查询语言)来管理其数据。

CentOS 7更倾向于使用MariaDB,这是MySQL的一个分支,由原始的MySQL开发人员管理,并设计为MySQL的替代品。如果在CentOS 7上运行yum install mysql,实际上安装的是MariaDB而不是MySQL。如果你想知道MySQL与MariaDB的区别,MariaDB通常可以在MySQL的位置无缝运行,所以除非你有一个特定的用例需要MySQL,可以参考在CentOS 7上安装MariaDB的指南

本教程将解释如何在CentOS 7服务器上安装MySQL版本8。

先决条件

要按照本教程操作,你需要:

  • A CentOS 7 with a non-root user with sudo privileges. You can learn more about how to set up a user with these privileges in the Initial Server Setup with CentOS 7 guide.

步骤 1 — 安装 MySQL

如介绍所述,使用 Yum 命令安装 MySQL 实际上会安装 MariaDB。要安装 MySQL,我们需要访问MySQL 社区 Yum 软件包库,该库提供 MySQL 的软件包。

在网络浏览器中访问:

https://dev.mysql.com/downloads/repo/yum/

请注意,突出显示的下载链接不直接指向文件。相反,它们指向后续页面,那里您可以选择登录或注册帐户。如果您不想创建帐户,可以找到文本“不,谢谢,直接开始我的下载”,然后右键单击并复制链接位置,或者您可以在下面的命令中编辑版本号。

找到所需版本,并根据需要在下面的链接中更新它:

  1. curl -sSLO https://dev.mysql.com/get/mysql80-community-release-el7-5.noarch.rpm

保存 rpm 文件后,我们将通过运行 md5sum 来验证下载的完整性,并将其与网站上列出的相应 MD5 值进行比较:

  1. md5sum mysql80-community-release-el7-5.noarch.rpm
Output
e2bd920ba15cd3d651c1547661c60c7c mysql80-community-release-el7-5.noarch.rpm

将此输出与网站上适当的 MD5 值进行比较:

现在我们已经验证了文件未被损坏或更改,我们将安装该软件包:

  1. sudo rpm -ivh mysql57-community-release-el7-9.noarch.rpm

这将添加两个新的 MySQL yum 软件库,现在我们可以使用它们来安装 MySQL 服务器:

  1. sudo yum install mysql-server

y确认您要继续。由于我们刚刚添加了包,我们还将被提示接受其GPG密钥。按y下载它并完成安装。

步骤2 — 启动MySQL

我们将使用以下命令启动守护进程:

  1. sudo systemctl start mysqld

systemctl不显示所有服务管理命令的结果,为了确保我们成功了,我们将使用以下命令:

  1. sudo systemctl status mysqld

如果MySQL成功启动,则输出应包含Active: active (running),最后一行应如下所示:

  1. Dec 01 19:02:20 centos-512mb-sfo2-02 systemd[1]: Started MySQL Server.

注意:安装MySQL时,它会自动启用在启动时启动的。您可以使用sudo systemctl disable mysqld更改该默认行为。

在安装过程中,为MySQL根用户生成了临时密码。使用以下命令在mysqld.log中找到它:

  1. sudo grep 'temporary password' /var/log/mysqld.log
Output
2022-01-24T19:54:46.313728Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: mqRfBU_3Xk>r

记下密码,您将在下一步中需要它来保护安装,在那里您将被强制更改密码。默认密码策略要求12个字符,至少包含一个大写字母、一个小写字母、一个数字和一个特殊字符。

步骤 3 — 配置 MySQL

MySQL 包含一个安全脚本,用于更改一些不够安全的默认选项,如远程 root 登录和示例用户。

使用以下命令运行安全脚本。

  1. sudo mysql_secure_installation

这将提示您输入默认的 root 密码。一旦输入密码,您将需要立即更改密码。

Output
The existing password for the user account root has expired. Please set a new password. New password:

输入一个新的 12 位字符密码,至少包含一个大写字母、一个小写字母、一个数字和一个特殊字符。再次输入以确认。

您将收到有关新密码强度的反馈,然后立即被要求再次更改密码。由于您刚刚更改过密码,您可以自信地选择

Output
Estimated strength of the password: 100 Change the password for root ? (Press y|Y for Yes, any other key for No) :

当我们拒绝再次更改密码的提示后,我们将按 Y 然后按 ENTER 回答所有后续问题,以删除匿名用户,禁止远程 root 登录,删除测试数据库及其访问权限,并重新加载权限表。

现在我们已经保护了安装,让我们来测试它。

步骤 4 — 测试 MySQL

我们可以通过连接到mysqladmin工具来验证我们的安装并获取有关它的信息,这是一个允许您运行管理命令的客户端。使用以下命令连接到MySQL作为root-u root),提示输入密码(-p),并返回版本。

  1. mysqladmin -u root -p version

您应该看到类似于以下内容的输出:

Output
mysqladmin  Ver 8.0.28 for Linux on x86_64 (MySQL Community Server - GPL)
Copyright (c) 2000, 2022, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Server version		8.0.28
Protocol version	10
Connection		Localhost via UNIX socket
UNIX socket		/var/lib/mysql/mysql.sock
Uptime:			3 min 2 sec

Threads: 2  Questions: 14  Slow queries: 0  Opens: 133  Flush tables: 3  Open tables: 49  Queries per second avg: 0.076

这表示您的安装已成功。

结论

在本教程中,我们已在CentOS 7服务器上安装并保护了MySQL。要了解更多关于使用MySQL的信息,可以参考这个关于学习更多关于MySQL命令的指南。您也可以考虑实施一些额外的安全措施

Source:
https://www.digitalocean.com/community/tutorials/how-to-install-mysql-on-centos-7