如何在Rocky Linux 9上安装MySQL
介绍
MySQL是一种开源数据库管理系统,通常作为流行的LEMP(Linux,Nginx,MySQL/MariaDB,PHP/Python/Perl)堆栈的一部分进行安装。它实现了关系模型和结构化查询语言(SQL)来管理和查询数据。
本教程将解释如何在Rocky Linux 9服务器上安装MySQL 8版本。
前提条件
为了完成本教程,您需要一个安装了Rocky Linux 9操作系统的服务器。该服务器应该有一个带有管理员权限的非root用户,并配置了firewalld防火墙。要进行设置,请参考我们的Rocky Linux 9初始服务器设置指南。
步骤1 — 安装MySQL
在Rocky Linux 9上,默认仓库中提供了MySQL 8的版本。
运行以下命令来安装mysql-server包及其一些依赖项:
- sudo dnf install mysql-server
当提示时,按下y并按下回车键确认您希望继续进行:
. . . Install 49 Packages Total download size: 46 M Installed size: 252 M Is this ok [y/N]: y
可以这样表达:在这之后,MySQL已经安装在你的服务器上,但还没有启动。你刚刚安装的软件包配置了MySQL以系统服务(mysqld.service)的形式运行。为了使用MySQL,你需要使用systemctl命令来启动它。
- sudo systemctl start mysqld.service
为了检查服务是否正常运行,请运行以下命令。请注意,对于许多systemctl命令(包括启动和这里显示的状态命令),您无需在服务名称后面加上”.service”。
- sudo systemctl status mysqld
如果MySQL成功启动,输出将显示MySQL服务处于活动状态。
● 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
Note
sudo systemctl disable mysqld
MySQL 现已安装、运行,并在您的服务器上启用。接下来,我们将介绍如何使用预装在 MySQL 实例中的 Shell 脚本加固您的数据库安全。
第二步 – 保障MySQL安全
MySQL包含一个安全脚本,允许您更改一些默认配置选项以提高MySQL的安全性。
使用安全脚本时,请运行以下命令:
- sudo mysql_secure_installation
这将带您通过一系列提示,询问您是否希望对您的MySQL安装的安全选项进行一些更改。第一个提示将问您是否想设置“验证密码插件”,您可以使用它来测试您的MySQL密码的强度。
如果你选择设置密码验证插件,脚本将要求你选择密码验证级别。最强级别是通过输入2进行选择,要求密码至少为八个字符,并包括大写字母、小写字母、数字和特殊字符的混合。
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根用户设置密码。请输入并确认您选择的安全密码。
Please set the password for root here. New password: Re-enter new password:
如果您使用了“验证密码”插件,您将收到对您新密码强度的反馈。然后脚本会询问您是否要继续使用刚刚输入的密码,或者是否要输入新密码。假设您对刚刚输入的密码强度感到满意,输入Y以继续执行脚本。
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。作为最后一步,我们将测试数据库是否可访问并按预期运行。
第三步 – 测试MySQL
通过连接mysqladmin工具,您可以验证安装并获取有关其的信息。该工具是一个客户端,允许您运行管理命令。使用以下命令连接到MySQL的root用户(-u root),提示输入密码(-p),并返回安装的版本。
- mysqladmin -u root -p version
您将会看到类似于这样的输出:
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选项,该选项告诉命令询问你以前设置的用户密码。
在输入您的Root MySQL用户密码后,您将看到MySQL提示:
从那里开始,您可以使用您的MySQL安装来创建和加载数据库,并开始运行查询。
结论是
通过按照本教程,您已在Rocky Linux 9服务器上安装并保护了MySQL。接下来,您可以安装Nginx和PHP,使您的服务器拥有完全可用的LEMP堆栈。
为了更多地了解如何使用MySQL,我们鼓励您查阅官方文档。