如何在 Ubuntu 上安装和配置 MySQL

MySQL 是一个开源、强大且广泛使用的关系数据库管理系统 (RDBMS),它将数据组织到单个或多个数据表中,其中数据类型可能相互关联。 结构化查询语言 (SQL) 与 RDBMS 一起工作,当有人想要存储或管理海量数据时,他们将获得关系数据库和 SQL 的服务。

本文展示了如何在 Ubuntu 18.04 服务器上配置 MySQL。 它还向您展示了如何启用身份验证,然后是服务管理。 最后,您还将学习如何测试服务以验证配置是否成功。

第 1 步:MySQL 客户端安装

安装 mysql客户端 远程连接服务器:

sudo apt install mysql-client -y

检查客户端版本,验证是否安装成功:

mysql -V

输出:

mysql Ver 8.0.28-0ubuntu0.20.04.3 for Linux on x86_64 ((Ubuntu))

现在您可以使用以下命令与 MySQL 服务器建立远程连接:

mysql -u <username> -p <password>-h HOSTNAME_OR_IP

第 2 步:MySQL 服务器安装

在安装 MySQL 之前,请确保 Ubuntu 服务器已正确安装和配置。 默认情况下,Ubuntu 18.04 服务器在存储库中包含最新的 MySQL 版本 5.7。 使用 apt 命令从存储库更新系统包,如下所示:

sudo apt update

现在使用以下命令安装 MySQL 服务器包:

sudo apt install mysql-server -y

第 3 步:MySQL 配置

在这个网络安全威胁持续存在的时代,成功安装服务器后更改默认选项是一种标准。 本节将指导您配置 MySQL 服务器以消除不安全的默认选项,例如远程 root 登录、默认用户帐户等。MySQL 通过运行简单的安全脚本自动进行所有更改来简化此任务。

sudo mysql_secure_installation

该脚本提示多个选项,请求是或否答案以更改 MySQL 默认安全性。 例如,第一个提示请求您是否要设置一个插件来验证密码,回答 是的 并继续。

下一个提示要求设置 MySQL root 用户帐户密码。 您会注意到,启用验证密码插件允许针对三个级别的密码安全策略和长度设置密码强度。

Enter 您要选择设置密码强度的数字。 然后系统会要求设置新密码并重新输入以确认,如下:

您可以注意到,设置密码后,它会显示强度并询问您是否要继续。

现在它将询问后续问题:

  1. 删除匿名测试用户

  2. 禁用root用户远程登录

  3. 删除测试数据库

  4. 重新加载权限表以保存所有更改

类型 继续使用默认设置来设置安全规则。

旧版本的 MySQL(5.7.6 之前)需要您手动初始化数据库目录。 而对于之后的版本,请运行以下命令:

mysqld –initialize

第四步:MySQL用户认证调整

不管为 MySQL 用户帐户建立密码,默认身份验证设置在连接建立期间禁用密码的使用。 相反,它会在 auth_socket 插入。 该插件是一个很好的可用性功能,但是,如果您想从远程客户端访问您的数据库,它是不切实际的。

由于没有密码的数据库访问在被外部程序访问时会使工作过程复杂化,本节总结了两种在连接建立时验证用户的方法:

1. 根用户密码认证

为确保通过密码进行用户身份验证,您可以将插件从“auth_socket“ 到 ”mysql_native_password.” 为此,请使用以下命令打开 MySQL 提示屏幕 sudo mysql 命令并验证用于用户身份验证的插件,如下所示:

SELECT user, authentication_string, plugin, host FROM mysql.user;

上面的屏幕截图显示根客户端使用“auth_socket”插件进行身份验证。 要使用密码初始化 root 客户端身份验证,请使用 ALTER USER 语句设置“mysql_native_password”插件。

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

Save 上述变化如下:

FLUSH PRIVILEGES;

“FLUSH PRIVILEGES”MySQL 语句保存由 ALTER、INSERT、UPDATE 和 DELETE 子句对数据库表所做的更改。

现在要验证每个用户使用的身份验证策略并确保 root 客户端没有使用“auth_socket”插件,重新运行命令:

SELECT user,authentication_string,plugin,host FROM mysql.user;

现在 root 用户可以通过以下命令进行身份验证来连接服务器:

sudo mysql -u root -p

2.创建专用用户

不使用 mysql_native_password 启用身份验证的另一种方法是创建一个专用用户,如下所示:

sudo mysql

创建一个新帐户并授予所有权限以将管理级别控制权分配给新用户。 然后,退出 MySQL 提示符。 一个一个地运行以下 SQL 查询来实现这一点:

CREATE USER 'ubuntu'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'ubuntu'@'localhost' WITH GRANT OPTION;
exit

使用 systemctl 管理和测试 MySQL 服务

使用以下命令将服务设置为在 Ubuntu 服务器启动时运行 systemctl 启用 命令如下:

sudo systemctl enable mysql

此外,您可以通过键入以下内容来测试服务器是否启动并运行:

sudo systemctl status mysql

要么

sudo systemctl status mysql.service

该服务在 MySQL 安装后自动运行,但是,如果没有,您可以使用以下命令启动该服务:

sudo systemctl start mysql

在 Ubuntu 上开始使用 MySQL 服务器

MySQL 是一个开源、用户友好、可扩展且强大的数据库管理系统。 此外,它是 LAMP/LEMP 堆栈模型或 Web 应用程序技术的一个组成部分。 这个关系数据库管理系统 (RDBMS) 在其最新版本上提供了简单的安装和简单的配置。

本文将指导您构建一个基本的 MySQL 设置,帮助您开始学习 MySQL 的工作原理。 它还涵盖了其配置中的一些初始重要安全措施,以避免默认设置中的漏洞。 您可以通过遵循一些高级安全提示来了解有关保护 MySQL 的更多信息。