Ubuntu 20.04 安装 MySQL 8

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

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 服务器是否正在运行。

1
2
3
sudo apt update
sudo apt install mysql-server
sudo systemctl status mysql
1
2
3
4
5
6
7
 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 服务器。

1
2
sudo mysql

1
2
3
4
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 用户使用密码进行身份验证。

1
2
3
ALTER USER root@'%' IDENTIFIED WITH mysql_native_password BY 'root';
FLUSH PRIVILEGES;

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

结论

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


Ubuntu 20.04 安装 MySQL 8
https://cuifuan.github.io/2023/03/01/database/Ubuntu-intsall-mysql8/
作者
cuifuan
发布于
2023年3月1日
许可协议