在Ubuntu 20.04上安装MySQL 8

本指南提供了有关如何在Ubuntu 20.04上安装MySQL 8的分步教程。 的MySQL 是一种快速,稳定和真正的多用户,多线程SQL数据库服务器,其主要目标是速度,健壮性和易用性。要查看MySQL 8提供的功能的全面描述,请导航至 MySQL 8参考手册

在Ubuntu 20.04上安装MySQL 8

Ubuntu 20.04在其默认存储库中随附了MySQL 8。

apt show mysql-server
Package: mysql-server
Version: 8.0.19-0ubuntu5
Priority: optional
Section: database
Source: mysql-8.0
Origin: Ubuntu
Maintainer: Ubuntu Developers [email protected]
Original-Maintainer: Debian MySQL Maintainers [email protected]
Bugs: https://bugs.launchpad.net/ubuntu/+filebug
Installed-Size: 110 kB
Depends: mysql-server-8.0
Homepage: http://dev.mysql.com/
Task: lamp-server
Download-Size: 9,544 B
APT-Sources: http://us.archive.ubuntu.com/ubuntu focal/main amd64 Packages

这使得MySQL 8的安装成为无缝任务。

在继续之前,请更新和升级系统软件包。

apt update
apt upgrade

接下来,通过执行以下命令在Ubuntu 20.04上安装MySQL 8;

apt install mysql-server

该命令将安装MySQL 8和所有必需的软件包依赖项。

在Ubuntu 20.04上安全地安装MySQL 8

MySQL附带了一个安全脚本,称为 mysql_secure_installation 使您可以通过以下方式实现MySQL安装的初始安全性:

  • 您可以为根帐户设置密码。
  • 您可以删除可从本地主机外部访问的根帐户。
  • 您可以删除匿名用户帐户。
  • 您可以删除测试数据库(默认情况下,所有用户都可以访问该数据库,甚至匿名用户也可以)和特权,该特权允许任何人访问名称以test_开头的数据库。

该脚本可以简单地通过运行来执行;

mysql_secure_installation

运行时,脚本会提示您是否要实施密码复杂性检查。接受密码的选择强度;

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
...

接下来,设置root密码并接受其他提示以删除匿名数据库用户,禁止远程root登录,删除测试数据库并重新加载特权表以对MySQL进行更改。

检查已安装的MySQL版本

您可以通过执行来验证安装的MySQL版本。

mysql -V
mysql Ver 8.0.19-0ubuntu5 for Linux on x86_64 ((Ubuntu))

登录MySQL 8

现在,您可以使用刚才设置的密码以root用户身份连接到MySQL 8。

mysql -u root -p

需要注意的另一件事是,默认情况下,MySQL 8默认使用unix套接字身份验证插件。这样一来,您无需密码即可以root用户身份从本地主机登录MySQL服务器。

因此,运行以下两个命令之一将使您登录到MySQL服务器。

mysql
mysql -u root

登录到MySQL后,您还可以通过执行命令来检查版本。

mysql> SHOW VARIABLES LIKE "%version%";
+--------------------------+-------------------------------+
| Variable_name            | Value                         |
+--------------------------+-------------------------------+
| immediate_server_version | 999999                        |
| innodb_version           | 8.0.19                        |
| original_server_version  | 999999                        |
| protocol_version         | 10                            |
| slave_type_conversions   |                               |
| tls_version              | TLSv1,TLSv1.1,TLSv1.2,TLSv1.3 |
| version                  | 8.0.19-0ubuntu5               |
| version_comment          | (Ubuntu)                      |
| version_compile_machine  | x86_64                        |
| version_compile_os       | Linux                         |
| version_compile_zlib     | 1.2.11                        |
+--------------------------+-------------------------------+
11 rows in set (0.00 sec)

启用基于密码的MySQL身份验证

如上所述,MySQL默认使用unix套接字身份验证插件。

SELECT plugin from mysql.user where User='root';
+-------------+
| plugin      |
+-------------+
| auth_socket |
+-------------+
1 row in set (0.00 sec)

要启用基于密码的身份验证,您需要切换到MySQL本机密码插件, mysql_native_password

UPDATE mysql.user SET plugin = 'mysql_native_password' WHERE user = 'root' AND plugin = 'auth_socket';

完成后,重置root用户密码;

ALTER USER [email protected] identified by '[email protected]';

重新加载特权表;

flush privileges;

验证更改;

SELECT User,plugin from mysql.user where User='root';
+------+-----------------------+
| User | plugin                |
+------+-----------------------+
| root | mysql_native_password |
+------+-----------------------+
1 row in set (0.00 sec)

退出数据库连接,然后尝试再次以root用户身份登录;

mysql -u root
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
mysql
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

你去。您没有在本地主机上为MySQL根用户禁用密码身份验证。

这标志着我们关于如何在Ubuntu 20.04上安装MySQL 8的指南的结尾。

Sidebar