如何在 Ubuntu 20.04 上安装 MySQL [快速入门]

介绍

MySQL是一个开源数据库管理系统,通常作为流行的LAMP(Linux、Apache、MySQL、PHP/Python/Perl)堆栈的一部分安装。它实现了关系模型并使用结构化查询语言(也称为 SQL)来管理其数据。

本快速入门教程将解释如何在 Ubuntu 20.04 服务器上安装 MySQL 8.0 版。

先决条件

要学习本教程,您需要:

第 1 步 – 安装 MySQL

要安装 MySQL,如果您最近没有更新服务器的包索引,请先更新:

  • sudo apt update

然后安装mysql-server包:

  • sudo apt install mysql-server

第 2 步 – 配置 MySQL

使用以下命令运行 MySQL 包含的安全脚本sudo

  • sudo mysql_secure_installation

这将带您完成一系列提示,您可以在其中对 MySQL 安装的安全选项进行一些更改。第一个提示会询问您是否要设置验证密码插件,该插件可用于测试您的 MySQL 密码的强度。

如果您选择设置验证密码插件,脚本将要求您选择密码验证级别,最弱的是0,最强的是2

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用户的密码

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接受所有后续问题的默认值。

第 3 步 – 创建专用 MySQL 用户并授予权限

安装后,MySQL 会创建一个特权root用户帐户,您可以用它来管理您的数据库,但最好避免在管理功能之外使用此帐户。此步骤概述了如何使用MySQL 用户创建新用户帐户并授予其权限。

MySQL 用户身份连接到数据库

  • sudo mysql

注意:如果您使用其他教程安装 MySQL 并为root启用密码身份验证,则需要使用以下命令访问 MySQL shell:

  • mysql -u root -p

一旦您可以访问 MySQL 提示,您就可以使用CREATE USER语句创建一个新用户它们遵循以下通用语法:

  • CREATE USER 'username'@'host' IDENTIFIED WITH authentication_plugin BY 'password';

在选择用户的身份验证插件时,您有多种选择。auth_socket前面提到插件很方便,因为它提供了强大的安全性,而无需有效用户输入密码即可访问数据库。但它也阻止了远程连接,当外部程序需要与 MySQL 交互时,这会使事情变得复杂。

作为替代方案,您可以完全省略语法部分,让用户使用 MySQL 的默认插件. 以下 ocmmand 创建一个使用. 请务必更改为您的首选用户名和您选择的强密码:WITH authentication plugincaching_sha2_passwordcaching_sha2_passwordsammypassword

  • CREATE USER 'sammy'@'localhost' IDENTIFIED BY 'password';

注意:某些版本的 PHP 存在一个已知问题,该问题会导致caching_sha2_password. 如果您打算将此数据库与 PHP 应用程序(例如 phpMyAdmin)一起使用,您可能希望创建一个用户,该用户将使用旧的但仍然安全的mysql_native_password插件进行身份验证

  • CREATE USER 'sammy'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

如果您不确定,您始终可以创建一个用户,caching_sha2_plugin然后ALTER使用以下命令进行身份验证

  • ALTER USER 'sammy'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

创建新用户后,您可以授予他们适当的权限。

为了说明,下面的命令授予用户全球特权CREATEALTERDROP数据库,表,和用户,以及所述电源INSERTUPDATE以及DELETE数据从服务器上的任何表。它还授予用户使用 查询数据的能力SELECT运行此GRANT语句,替换sammy为您自己的 MySQL 用户名,将这些权限授予您的用户:

  • GRANT CREATE, ALTER, DROP, INSERT, UPDATE, DELETE, SELECT on *.* TO 'sammy'@'localhost' WITH GRANT OPTION;

警告:一些用户可能想要授予他们的 MySQL 用户ALL PRIVILEGES权限,这将为他们提供类似于root用户权限的广泛超级用户权限,如下所示:

  • GRANT ALL PRIVILEGES ON *.* TO 'sammy'@'localhost' WITH GRANT OPTION;

不应轻易授予如此广泛的权限,因为任何有权访问此 MySQL 用户的人都将完全控制服务器上的每个数据库。

在此之后,运行以下FLUSH PRIVILEGES命令是一种很好的做法

  • FLUSH PRIVILEGES;

然后就可以退出 MySQL 客户端了:

  • exit

将来,要以新 MySQL 用户身份登录,您将使用如下命令:

  • mysql -u sammy -p

-p标志将导致 MySQL 客户端提示您输入 MySQL 用户的密码以进行身份​​验证。

结论

您现在已经在服务器上安装了基本的 MySQL 设置。以下是您可以采取的后续步骤的几个示例:

觉得文章有用?

点个广告表达一下你的爱意吧 !😁