MySQL是最流行的开源关系数据库管理系统。它快速,易于使用,可扩展,并且是流行的LAMPLEMP栈的组成部分。

随着MySQL的不断成熟,它也逐渐用于更多大规模网站和应用。本教程介绍了如何在Ubuntu 20.04上安装和配置MySQL。

包括使用apt命令安装MySQL 8.0服务器,初始化MySQL并配置MySQL的验证方式,以root用户身份登录MySQL,解决MySQL root用户权限问题。

在撰写本文时,Ubuntu 20.04存储库中可用的MySQL当前版本为8.0。要安装它,请以root用户或具有sudo权限的用户运行以下命令。

首先更新软件包索引运行sudo apt update命令。然后运行sudo apt install mysql-server安装MySQL服务器。

安装完成后,MySQL服务将作为systemd服务自动启动。你可以运行sudo systemctl status mysql命令验证MySQL服务器是否正在运行。

sudo apt update
sudo apt install mysql-server
sudo systemctl status mysql
● mysql.service - MySQL Community Server
     Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
     Active: active (running) since Tue 2020-04-28 20:59:52 UTC; 10min ago
   Main PID: 8617 (mysqld)
     Status: "Server is operational"
     ...

连接MySQL

当MySQL安装完成后,你可能会想运行命令mysql -u root -p登录到MySQL服务器。

如果你登录到Ubuntu的用户不是root用户你将不能访问MySQL服务器。如果你尝试使用密码登录也将被拒绝连接,MySQL root用户默认是没有密码。

你将会收到类似于这样的消息(28000): Access denied for user 'root'@'localhost' (using password: YES)或者ERROR 1045 (28000): Access denied for user 'root'@'localhost'。

这是因为在MySQL 8.0上,对root用户使用auth_socket插件进行身份验证。auth_socket插件仅对从localhost连接到Unix socket文件用户进行身份验证。

这意味着您无法通过提供密码来以root用户连接到MySQL服务器。但你可以通过命令sudo mysql连接到MySQL服务器。

sudo mysql
Welcome to the MySQL monitor.  Commands end with ; or \g.
mysql>

如果您要使用外部程序,例如phpMyAdmin。以root用户连接到MySQL服务器,则有两个选择。

第一个是将身份验证方法从auth_socket更改为mysql_native_password。您可以通过运行ALTER USER SQL语句命令来做到这一点。

第二个选项是创建一个新的专用管理用户,该用户可以访问所有数据库。

下面将使用第一个选项运行ALTER USER SQL语句使root用户使用密码进行身份验证。

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密码';
FLUSH PRIVILEGES;

如果你需要配置MySQL用户的远程访问,可参考我们的教程如何允许MySQL数据库服务器的远程连接

如何允许MySQL数据库服务器的远程连接 | myfreax
默认情况下,MySQL服务器仅监听来自本地主机的连接,这意味着它只能由运行在同一主机上的应用程序访问

结论

我们向您展示了如何在Ubuntu 20.04安装MySQL。 现在您的数据库服务器已启动并正在运行,下一步是学习如何管理MySQL用户帐户和数据库

如何在Ubuntu 20.04上安装Apache
Apache是世界上最受欢迎的Web服务器之一。 这是一个开放源代码和跨平台的HTTP服务器。本教程介绍了如何在Ubuntu 20.04上安装和管理Apache Web服务器。
如何在Ubuntu 20.04上安装PHP | myfreax
PHP是最常用的服务器端编程语言之一。本指南介绍了在Ubuntu 20.04上安装PHP并将其与Nginx和Apache集成的必要步骤
如何在Ubuntu 20.04上设置Apache虚拟主机
虚拟主机是一种Apache配置指令,可让您在单个服务器上运行多个网站。本文介绍了如何在Ubuntu 20.04上设置Apache虚拟主机