如何在 Ubuntu 20.04 LTS 中安装和配置 MySQL
MySQL 代表 My(联合创始人 Michael Widenius 的女儿名字)结构化查询语言,是一个开源关系数据库管理系统。该 RDBMS 受 Oracle 支持,可在几乎所有平台上运行,例如 Linux、UNIX 和 MS Windows。 MYSQL 通常是在线发布和基于 Web 的应用程序的首选。 Facebook、YouTube 和 Twitter 都使用 MySQL 作为其 RDBMS。 MySQL 是非常流行的 LAMP 堆栈的一部分:Linux、Apache、MySQL 和 Python/PHP/Perl。
在本文中,我们将逐步描述如何进行:
- 安装 apt 软件包存储库中可用的最新版本的 MySQL
- 运行 MySQL 安全脚本
- 配置root用户访问MySQL shell
- 最后测试MySQL是否正在运行
我们已经在 Ubuntu 20.04 LTS 系统上运行了本文中提到的命令和过程
MySQL安装和安全配置
在本节中,我们将描述如何从 Ubuntu 命令行安装 MySQL 并配置安全性。
您可以从应用程序启动器搜索栏或按 Ctrl+Alt+T 打开 Ubuntu 命令行(终端)。
第 1 步:更新存储库索引
要从 Internet 存储库安装软件的最新可用版本,您的本地存储库索引必须与之匹配。以 sudo 身份运行以下命令来更新本地存储库索引:
sudo apt-get update
步骤2:使用apt安装MySQL服务器
请以 sudo 身份运行以下命令,从 APT 存储库安装 MySQL。
sudo apt-get install mysql-server
请注意,只有 Ubuntu 上的授权用户才能添加、删除和配置软件。
系统可能会要求您输入 sudo 的密码,并为您提供是/否选项以继续安装。输入 Y 然后按 Enter;然后 MySQL 将安装在您的系统上。但是,该过程可能需要一些时间,具体取决于您的互联网速度。
步骤 3:验证安装(可选)
您可以通过在终端中运行以下命令来验证 MySQL 安装并检查版本号:
mysql --version
步骤 4:通过运行提供的安全脚本进行安全配置
每当您安装新的 MySQL 副本时,您都应该更改一些默认设置,以提高 MySQL 安装的安全性。其中包括删除测试用户、测试数据库以及允许 root 用户远程登录。
以 sudo 身份运行以下命令来启动安全脚本:
sudo mysql_secure_installation
当您运行此命令时,系统将提示您做的第一件事是设置验证密码插件。这允许您为 root 设置安全密码,具体取决于您要选择的密码强度。输入 Y 启动验证密码插件,您将收到以下提示:
输入您选择的密码强度数字,然后按 Enter。然后系统会要求您输入 root 的新密码。输入密码并在出现以下提示时重新输入。
然后系统将显示您提供的密码的强度,并询问您是否要继续使用该密码。
输入 Y(是)并按 Enter 键。
系统现在将询问您一系列问题,一次一个,您可以根据您对这些问题的回答来设置系统的安全性。
系列问题:
第一个问题将询问您是否要删除匿名测试用户。
按 y 和 Enter 键。
第二个问题将询问您是否要禁止从远程系统进行 root 登录。这通常应该是您的选择,因为对于安全系统,应该只允许 root 从本地主机进行连接。
因此,我们建议您输入 y。
第三个问题询问您是否要从系统中删除名为“test”的默认 MySQL 数据库并删除对其的访问权限。
键入 y 以删除此测试数据库。
为了使上面配置的所有更改生效,系统必须重新加载权限表。输入 y,您的所有安全更改都将应用。
配置 root 使用 MySQL shell
运行安全脚本时,您指定了 root 的密码。但是,不允许该用户使用相同的密码连接到 MySQL Shell。您可以通过将其身份验证方法从默认的“auth_socket”更改为“mysql_native_password”来配置 root 使用 MySQL Shell。
操作方法如下:
第 1 步:启动 MySQL Shell
首先,通过以 sudo 身份运行以下命令来启动 MySQL shell:
sudo mysql
这将启动 MySQL shell,以便您可以在 MySQL 提示符下工作。
步骤2:检查MySQL用户的身份验证方法
在 MySQL 提示符下,输入以下命令,这将允许您检查所有 MySQL 帐户当前使用的身份验证方法/插件:
mysql> SELECT user,authentication_string,plugin,host FROM mysql.user;
在上面的输出中,您可以看到 root 默认使用 auth-socket 插件进行身份验证。
步骤 3:更改 root 的身份验证方法
我们的目标是让 root 用户使用密码对 MySQL 进行身份验证。为此,请运行以下命令,该命令将通过 mysql_native_password 标识 root 用户。请记住,该密码必须非常安全。
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
从现在开始,您的 root 用户将不再拥有您在运行提供的安全脚本时指定的密码,而是您在上述命令中指定的强密码。
第 4 步:重新加载授权表
现在是时候告诉服务器从现在开始使用新的权限设置。在 MySQL 命令提示符处运行以下命令以重新加载授权表并注册您的更改:
mysql> FLUSH PRIVILEGES;
第5步:重新检查MySQL用户的身份验证方法
现在,如果您使用以下命令重新检查 MySQL 用户帐户的身份验证方法,您将看到您的 root 用户现在正在使用 mysql_native_password 插件进行身份验证:
mysql> SELECT user,authentication_string,plugin,host FROM mysql.user;
现在您的 root 用户已设置为使用安全密码连接到 MySQL shell,您可以使用 exit 命令退出 shell,如下所示:
mysql> exit
测试 MySQL 是否正在运行
要测试 MySQL 是否正在您的系统上运行,您可以使用以下方法之一:
方法一:查看mysql.service的状态
在系统上安装 MySQL 后,mysql.service 很可能会自动运行。以下命令的输出应验证服务的活动状态:
systemctl status mysql.service
如果由于某种原因该服务没有运行,您可以使用以下命令作为 sudo 来启动该服务:
sudo systemctl start mysql
如果需要,您可以使用以下命令再次停止该服务:
sudo systemctl stop mysql
方法 2:以 root 身份连接到 MySQL Admin 并运行任何管理命令
MySQL Admin 是一个客户端,允许您对 MySQL 执行管理操作。作为示例,让我们对其运行一个管理命令来检查系统是否正常运行以及我们的 root 是否配置为这样做。
sudo mysqladmin -p -u root version
该命令是以root身份连接MySQL,获取root密码,然后返回MySQL admin版本号。
如果该命令执行了预期的操作并生成与上述类似的输出,则可以确定 MySQL 已启动并正在运行。
对于某些人来说,在 Ubuntu 上安装和设置 MySQL 的过程可能看起来很麻烦,尤其是在使用命令行时。然而,如果你仔细地一一遵循上述步骤,那么在你的 Ubuntu 上可靠、安全、稳定地安装 MySQL 就不会出现任何问题。