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

介绍

MySQL是一个开源数据库管理系统,通常安装作为流行的 LAMP(Linux,Apache,MySQL,PHP/Python/Perl)堆栈的一部分。

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

前提条件

要遵循本教程,您将需要:

  • 一个 Ubuntu 20.04 服务器,具有非 root 管理用户和与 UFW 配置的防火墙。

步骤1:安装MySQL

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

1sudo apt update

然后安装mysql-server包:

1sudo apt install mysql-server

确保 MySQL 运行:

1sudo systemctl start mysql.service

第2步:配置MySQL

运行包含的MySQL安全脚本与sudo:

1sudo mysql_secure_installation

这将带您通过一系列提示,您可以对您的MySQL安装的安全选项做出一些更改。第一个提示将询问您是否想设置验证密码插件,该插件可以用来测试您的MySQL密码的强度。

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

 1[secondary_label Output]
 2Securing the MySQL server deployment.
 3
 4Connecting to MySQL using a blank password.
 5
 6VALIDATE PASSWORD COMPONENT can be used to test passwords
 7and improve security. It checks the strength of password
 8and allows the users to set only those passwords which are
 9secure enough. Would you like to setup VALIDATE PASSWORD component?
10
11Press y|Y for Yes, any other key for No: Y
12
13There are three levels of password validation policy:
14
15LOW Length >= 8
16MEDIUM Length >= 8, numeric, mixed case, and special characters
17STRONG Length >= 8, numeric, mixed case, special characters and dictionary file
18
19Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG:
20 2

下一个提示将是输入并确认MySQL root 用户的密码:

1[secondary_label Output]
2Please set the password for root here.
3
4New password: 
5
6Re-enter new password:

然后,脚本会询问您是否想要继续使用您刚刚输入的密码,或者是否想要输入新的密码. 如果您对您的密码满意,请输入Y以继续脚本:

1[secondary_label Output]
2Estimated strength of the password: 100 
3Do 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 用户帐户,您可以使用它来管理您的数据库,但最好避免使用该帐户以外的管理功能。

连接到数据库作为 root MySQL 用户:

1sudo mysql

<$>[注] 注: 如果您安装了MySQL与另一个教程,并启用了对 ** root** 的密码身份验证,则需要使用以下命令访问MySQL壳:

1mysql -u root -p

美元

一旦你可以访问MySQL提示,你可以创建一个新的用户,用一个CREATE USER声明。

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

在选择用户身份验证插件时,您有几个选项。前面提到的auth_socket插件可以方便,因为它提供了强大的安全性,而不需要有效的用户输入密码来访问数据库。

作为一种替代方法,您可以完全放弃语法中的WITH authentication plugin部分,以便用户使用MySQL的默认插件caching_sha2_password进行身份验证。以下 ocmmand 会创建一个使用者以caching_sha2_password进行身份验证。

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

<$>[注] :某些版本的PHP存在一个已知的问题,导致了 caching_sha2_password 的问题. 如果您计划使用这个数据库与一个PHP应用程序 - 例如 phpMyAdmin - 您可能想要创建一个用户,将使用更旧的,虽然仍然安全的, mysql_native_password 插件来验证:

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

如果您不确定,您可以随时创建一个用 `caching_sha2_plugin’ 进行身份验证的用户,然后用以下命令更改它:

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

美元

创建新用户后,您可以授予他们相应的特权。

举例来说,下面的命令赋予用户CREATEALTERDROP数据库、表和用户的全球权限,以及从服务器上的任何表中INSERTUPDATEDELETE数据的权限。

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

<$>[warning] ** Warning** :有些用户可能希望授予他们的MySQL用户ALL PRIVILEGES特权,这将为他们提供类似于 ** root** 用户的特权的广泛超级用户特权,如下:

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

这种广泛的特权不应该轻易给予,因为任何有访问这个MySQL用户的人都会对服务器上的每个数据库拥有完全的控制权。

接下来,运行FLUSH PRIVILEGES命令是很好的做法:

1FLUSH PRIVILEGES;

然后您可以退出 MySQL 客户端:

1exit

在未来,要作为你的新MySQL用户登录,你会使用如下这样的命令:

1mysql -u sammy -p

p旗将导致MySQL客户端向您请求您的MySQL用户密码以进行身份验证。

结论

您现在已在您的服务器上安装了基本的 MySQL 设置,以下是您可以采取的下一步步骤的几个例子:

Published At
Categories with 技术
comments powered by Disqus