如何在 Rocky Linux 9 上安装 MySQL
作者 Tony Tran
导言
MySQL 是一个开源的数据库管理系统,通常作为流行的 LEMP(即Linux,Nginx,MySQL/MariaDB,PHP/Python/Perl)堆栈的一部分安装。MySQL 实现了关系模型和结构化查询语言(即SQL),用来管理和查询数据。 本教程讲解了如何在 Rocky Linux 9 服务器上安装 MySQL 第 8 版。
前期准备
要完成本教程,你需要一台运行 Rocky Linux 9 的服务器。这台服务器应该有一个具有管理权限的非 root 用户和一个配置了 firewalld
的防火墙。
第1步 - 安装 MySQL
在 Rocky Linux 9 上,可以从默认的软件库中获取MySQL 第 8 版。
运行下面的命令来安装 mysql-server
包和它的一些依赖项:
$ sudo dnf install mysql-server
出现提示时,按 y
,然后按 ENTER
确认继续。
Output
. . .
Install 49 Packages
Total download size: 46 M
Installed size: 252 M
Is this ok [y/N]: y
这样,MySQL 就安装在你的服务器上了,但它现在还没有运行。你刚刚安装的软件包将 MySQL 配置为 mysqld.service
,它会作为一个 systemd
服务来运行。为了使用 MySQL,你需要用 systemctl
命令来启动它:
$ sudo systemctl start mysqld.service
请运行以下命令来检查该服务是否正常运行。注意,许多 systemctl
命令并不需要在服务名称后面加上 .service
,例如 start
和下面的 status
命令:
$ sudo systemctl status mysqld
如果 MySQL 成功启动,输出结果将显示 MySQL 服务处于 active
状态,如下:
Output
● mysqld.service - MySQL 8.0 database server
Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
Active: active (running) since Thu 2020-03-12 14:07:41 UTC; 1min 7s ago
Main PID: 15723 (mysqld)
Status: "Server is operational"
Tasks: 38 (limit: 5056)
Memory: 474.2M
CGroup: /system.slice/mysqld.service
└─15723 /usr/libexec/mysqld --basedir=/usr
Mar 12 14:07:32 rocky9-mysql systemd[1]: Starting MySQL 8.0 database server...
Mar 12 14:07:32 rocky9-mysql mysql-prepare-db-dir[15639]: Initializing MySQL database
Mar 12 14:07:41 rocky9-mysql systemd[1]: Started MySQL 8.0 database server.
接下来,用以下命令将 MySQL 设置为在服务器启动时启动:
$ sudo systemctl enable mysqld
注意:如果你想改变这种做法,禁止 MySQL 在服务器启动时启动,可以运行以下命令:
$ sudo systemctl disable mysqld
现在,你已经在服务器上安装、运行并启用了 MySQL 。接下来,我们将讨论如何使用预装在 MySQL 实例中的 shell 脚本来加强数据库的安全性。
第2步 - 保护 MySQL 的安全
MySQL 包含一个安全脚本,允许你改变其中的一些默认配置选项,以提高 MySQL 的安全性。 要使用安全脚本,请运行以下命令:
$ sudo mysql_secure_installation
你将面对一系列的提示,询问你是否要对 MySQL 安装的安全选项进行某些改变。第一个提示将询问你是否想设置密码验证插件,你可以用它来测试 MySQL 密码的强度。
如果选择设置密码验证插件,脚本将要求你选择一个密码验证级别。最强的级别(通过输入 2
来选择)将要求你的密码至少有8个字符长,并包括大写、小写、数字和特殊字符的组合:
Output
Securing the MySQL server deployment.
Connecting to MySQL using a blank password.
VALIDATE PASSWORD COMPONENT can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD component?
Press y|Y for Yes, any other key for No: Y
There are three levels of password validation policy:
LOW Length >= 8
MEDIUM Length >= 8, numeric, mixed case, and special characters
STRONG Length >= 8, numeric, mixed case, special characters and dictionary file
Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 2
无论你是否选择设置密码验证插件,下一个提示将要求你为 MySQL root 用户设置密码。输入并确认你选择的安全密码:
Output
Please set the password for root here.
New password:
Re-enter new password:
如果你使用了密码验证插件,你会收到关于新密码强度的反馈。然后,脚本会问你是否要继续使用你刚刚输入的密码,或者是否输入一个新的密码。如果你对刚刚输入的密码的强度感到满意,就输入 Y
来继续脚本。
Output
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
在这之后,你可以按 Y
,然后按 ENTER
接受所有后续问题的默认值。这意味着删除一些匿名用户和测试数据库,禁用远程 root 登录,并加载这些新的规则,使 MySQL 立即接受你所做的改变。
就这样,你已经在 Rocky Linux 9 服务器上安装并保护了 MySQL。在最后一步,我们将测试数据库是否可以访问并按预期工作。
第3步 - 测试 MySQL
你可以连接 mysqladmin
工具来验证你的安装并获得相关信息,该工具是一个让你运行管理命令的客户端。使用下面的命令以 root 身份(-u root
)连接到 MySQL,提示输入密码(-p
),返回安装的版本:
$ mysqladmin -u root -p version
你会看到与下面类似的输出: Output
mysqladmin Ver 8.0.28 for Linux on x86_64 (Source distribution)
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: 1 min 11 sec
Threads: 2 Questions: 16 Slow queries: 0 Opens: 133 Flush tables: 3 Open tables: 49 Queries per second avg: 0.225
这表明你的安装是成功的。 如果你想连接到 MySQL 并开始向其中添加数据,请运行以下命令:
$ mysql -u root -p
像之前的 mysqladmin
命令一样,这个命令包括 -u
选项,即允许你指定你想连接的用户(本例中是 root),以及 -p
选项,即告诉命令提示你在上一步中设置的用户密码。
输入你的 MySQL root 用户的密码后,你将看到 MySQL 提示符:
mysql>
现在开始,你就可以使用 MySQL 创建和加载数据库并运行查询了。
结语
通过本教程,你已经学会了在 Rocky Linux 9 服务器上安装 MySQL,并确保了它的安全性。你可以以这里为起点,开始安装 Nginx 和 PHP,在你的服务器上建立一个可完全操作的 LEMP 栈。 要了解更多关于使用 MySQL 的信息,我们推荐你查阅官方文档。