MySQL 代表 My(联合创始人 Michael Widenius 的女儿名)Structured Query Language,是一种开源关系数据库管理系统。 该 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
第二步:用apt安装MySQL服务器
请运行以下命令作为 sudo 从 APT 存储库安装 MySQL。
$ sudo apt-get install mysql-server
请注意,只有 Ubuntu 上的授权用户才能添加、删除和配置软件。
系统可能会要求您输入密码 sudo 并为您提供 Y/n 选项以继续安装。 输入 Y 然后按 Enter; 然后将在您的系统上安装 MySQL。 但是,该过程可能需要一些时间,具体取决于您的互联网速度。
步骤 3:验证安装(可选)
您可以通过在终端中运行以下命令来验证您的 MySQL 安装并检查版本号:
$ mysql --version
步骤 4:通过运行提供的安全脚本进行安全配置
每当您安装 MySQL 的新副本时,您都应该更改一些默认设置以提高 MySQL 安装的安全性。 这些包括删除测试用户、测试数据库和允许 root 用户远程登录。
运行以下命令 sudo 启动安全脚本:
$ sudo mysql_secure_installation
当您运行此命令时,系统会提示您做的第一件事是设置验证密码插件。 这允许您为 root 设置安全密码,具体取决于您要选择的密码强度。 键入 Y 启动验证密码插件,您将收到以下提示:
Enter 您为密码强度选择的数字并按 Enter. 然后系统会要求您输入新的 root 密码。 键入密码并在以下提示中重新键入。
系统随后将显示您提供的密码强度,并询问您是否要继续使用该密码。
输入 Y 表示是,然后按 Enter.
系统现在会问您一系列问题,一次一个,您可以根据对这些问题的回答来设置系统的安全性。
系列问题:
第一个问题将询问您是否要删除匿名测试用户。
按 y 和 Enter 钥匙。
第二个问题将询问您是否要禁止从远程系统进行 root 登录。 这通常应该是您的选择,因为对于安全系统,应该只允许 root 从本地主机连接。
因此,我们建议您输入 y。
第三个问题询问您是否要从系统中删除名为“test”的默认 MySQL 数据库并删除对它的访问。
键入 y 以删除此测试数据库。
为了使上面配置的所有更改生效,系统必须重新加载权限表。 Enter y 并且您的所有安全更改都将被应用。
配置 root 以使用 MySQL shell
运行安全脚本时,您为 root 指定了密码。 但是,不允许此用户使用相同的密码连接到 MySQL Shell。 您可以通过将其身份验证方法从默认的“auth_socket”更改为“mysql_native_password”来配置 root 使用 MySQL Shell。
这是如何做到的:
第 1 步:启动 MySQL Shell
首先,通过运行以下命令来启动 MySQL shell sudo:
$ 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 安装就不会有任何问题。