MySQL是一个开源数据库管理系统,通常作为流行的一部分安装LEMP(Linux、Nginx、MySQL/MariaDB、PHP/Python/Perl)堆栈。它使用关系数据库和 SQL(结构化查询语言)来管理其数据。
CentOS 7 更喜欢 MariaDB,它是 MySQL 的一个分支,由原始 MySQL 开发人员管理,旨在替代 MySQL。如果你跑yum install mysql
在 CentOS 7 上,安装的是 MariaDB 而不是 MySQL。如果您想了解 MySQL 与 MariaDB,MariaDB 通常会代替 MySQL 无缝运行,因此除非您有 MySQL 的特定用例,否则请参阅如何在 Centos 7 上安装 MariaDB guide.
本教程将解释如何在 CentOS 7 服务器上安装 MySQL 版本 8。
要学习本教程,您将需要:
- 具有非 root 用户的 CentOS 7
sudo
特权。您可以在中了解有关如何设置具有这些权限的用户的更多信息CentOS 7 的初始服务器设置 guide.
正如简介中提到的,安装 MySQL 的 Yum 命令实际上安装了 MariaDB。要安装 MySQL,我们需要访问MySQL 社区 Yum 存储库它提供了 MySQL 的软件包。
在网络浏览器中,访问:
https://dev.mysql.com/downloads/repo/yum/
请注意,突出的下载链接不会直接指向这些文件。相反,它们会引导您进入后续页面,邀请您登录或注册帐户。如果您不想创建帐户,可以找到文本“不,谢谢,只需开始我的下载”,然后右键单击并复制链接位置,或者您可以在以下命令中编辑版本号。
找到所需的版本,并根据需要在以下链接中更新:
-
curl -sSLO https://dev.mysql.com/get/mysql80-community-release-el7-5.noarch.rpm
保存 rpm 文件后,我们将通过运行来验证下载的完整性md5sum
并与网站上列出的相应MD5值进行比较:
- md5sum mysql80-community-release-el7-5.noarch.rpm
Output
e2bd920ba15cd3d651c1547661c60c7c mysql80-community-release-el7-5.noarch.rpm
将此输出与站点上相应的 MD5 值进行比较:
现在我们已经验证文件没有损坏或更改,我们将安装该软件包:
-
sudo rpm -ivh mysql57-community-release-el7-9.noarch.rpm
这添加了两个新的 MySQL yum 存储库,我们现在可以使用它们来安装 MySQL 服务器:
-
sudo yum installmysql 服务器
Press y
以确认您要继续。由于我们刚刚添加了该软件包,因此系统还会提示我们接受其 GPG 密钥。按y
下载并完成安装。
我们将使用以下命令启动守护进程:
systemctl
不显示所有服务管理命令的结果,因此为了确保我们成功,我们将使用以下命令:
如果 MySQL 已成功启动,输出应包含Active: active (running)
最后一行应该类似于:
- Dec 01 19:02:20 centos-512mb-sfo2-02 systemd[1]:启动MySQL服务器。
Note:MySQL 在安装时会自动启动。您可以使用以下命令更改默认行为sudo systemctl disable mysqld
在安装过程中,会为MySQL root用户生成一个临时密码。找到它在mysqld.log
用这个命令:
-
sudo grep '临时密码'/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 个字符,至少包含 1 个大写字母、1 个小写字母、1 个数字和 1 个特殊字符。
MySQL 包含一个安全脚本,用于更改一些不太安全的默认选项,例如远程 root 登录和示例用户。
使用此命令运行安全脚本。
这将提示您输入默认的 root 密码。一旦您输入它,您将被要求更改它。
Output
The existing password for the user account root has expired. Please set a new password.
New password:
输入新的 12 个字符的密码,其中至少包含 1 个大写字母、1 个小写字母、1 个数字和 1 个特殊字符。出现提示时重新输入。
您将收到有关新密码强度的反馈,然后系统会立即提示您再次更改密码。既然你刚刚这么做了,你就可以自信地说No
:
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 登录、删除测试数据库并访问它,并重新加载权限表。
现在我们已经确保了安装的安全,让我们测试一下。
我们可以通过连接来验证我们的安装并获取有关它的信息mysqladmin
工具,一个允许您运行管理命令的客户端。使用以下命令连接到 MySQL:root (-u root
),提示输入密码(-p
),并返回版本。
您应该看到与此类似的输出:
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 命令的更多信息可以帮助。您也可以考虑实施一些额外的安全措施.