MySQL 的安装与基础配置

MySQLMySQLBeginner
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

简介

在本实验中,我们将探索 MySQL 的基本配置和使用。MySQL 是最流行的开源关系型数据库管理系统(RDBMS)之一,广泛应用于许多数据库驱动的 Web 应用程序和热门网站。通过本实验,你将获得实际操作经验,包括验证 MySQL 安装、确保其初始设置的安全性、访问 MySQL shell 以及检查系统数据库和表。

验证 MySQL 安装

为了方便起见,MySQL 已经预先安装在你的系统中。然而,了解安装过程仍然很重要。在典型的 Ubuntu 环境中,你可以使用以下命令来安装 MySQL:

以下命令仅用于信息参考。你不需要运行它们,因为 MySQL 已经在你的环境中安装好了。

## DO NOT RUN THESE COMMANDS
sudo apt update
sudo apt install mysql-server -y

apt update 命令用于更新包列表,以确保你拥有关于可用软件包的最新信息。apt install mysql-server -y 命令用于安装 MySQL 服务器包。-y 标志用于在安装过程中自动回答所有提示为“是”。

让我们从验证 MySQL 安装并检查其状态开始。

首先,点击桌面上的终端图标打开终端窗口:

桌面上的终端图标

进入终端后,运行以下命令以检查 MySQL 的状态:

sudo service mysql status

该命令使用 sudo 以管理员权限运行,这通常是系统级操作所需的。service mysql status 部分要求系统报告 MySQL 服务的当前状态。

MySQL 服务状态输出

你应该会看到输出显示 MySQL 已停止。这是预期的,因为我们尚未启动 MySQL 服务。

sudo service mysql start

等待几秒钟让服务启动,然后再次运行状态检查命令:

MySQL 服务状态输出

访问 MySQL Shell

现在,让我们访问 MySQL shell 来执行一些基本操作。

要访问 MySQL shell,请使用以下命令:

sudo mysql -u root

该命令使用 sudo 以管理员权限运行,这通常是系统级操作所需的。mysql 命令用于访问 MySQL shell,而 -u root 标志指定你以 root 用户身份连接。

在这种情况下,无需提供密码,因为 LabEx VM 上的 MySQL 安装配置为允许 root 用户无需密码登录。这在开发环境中很常见,但在生产系统中不应这样做。

如果成功,你将看到欢迎信息和 MySQL 提示符:

Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 52
Server version: 10.6.18-MariaDB-0ubuntu0.22.04.1 Ubuntu 22.04

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]>

你现在已经进入了 MySQL shell,可以在这里执行 SQL 命令。

MariaDB [(none)]> 提示符表示你已连接到 MariaDB(MySQL 的一个分支),并且当前没有使用任何特定的数据库。

需要注意的是,你看到的是 MariaDB 而不是 MySQL。不用担心——这不会影响你完成本实验或学习 MySQL 命令的能力。原因如下:

  1. MariaDB 是 MySQL 的一个分支,由 MySQL 的原始开发者创建。它被设计为 MySQL 的替代品,这意味着它与 MySQL 的语法和操作完全兼容。
  2. MariaDB 的创建是为了确保始终有一个真正开源的 MySQL 版本可用。它在保持与 MySQL 高度兼容的同时,还提供了一些独特的功能和改进。
  3. 就本实验和大多数基础到中级 MySQL 操作而言,你可以将 MariaDB 完全视为 MySQL。我们在本实验中将使用的所有命令在 MariaDB 和 MySQL 中都能同样工作。
  4. MariaDB 通常被认为比 MySQL 更轻量级且更快,这使其成为像本实验这样的学习环境的绝佳选择。你可能会注意到更快的响应时间,这可以使你的学习体验更加顺畅。
  5. 许多 Linux 发行版,包括某些版本的 Ubuntu,现在都使用 MariaDB 作为其默认的 MySQL 兼容数据库系统,因为它的开源性质和性能优势。

因此,当你在提示符或输出中看到“MariaDB”时,只需记住,就本实验而言,你可以将其视为 MySQL。你在这里学到的所有技能都直接适用于现实场景中的 MariaDB 和 MySQL。

探索系统数据库

现在我们已经进入了 MySQL shell,让我们来探索系统数据库。这些是随 MySQL 预装的数据库,包含了关于 MySQL 服务器本身的重要信息。

在 MySQL shell 中,运行以下命令:

SHOW DATABASES;

注意:不要忘记命令末尾的分号(;)。SQL 命令必须以分号结尾。

MySQL 数据库列表输出

该命令列出了 MySQL 服务器中存在的所有数据库。你应该会看到类似以下的输出:

+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.00 sec)

让我们分解一下这些数据库的作用:

  • information_schema:这是一个提供访问数据库元数据的数据库。
  • mysql:该数据库包含 MySQL 服务器运行所需的信息。
  • performance_schema:该数据库提供了一种在运行时检查服务器内部执行情况的方式。
  • sys:该数据库包含一组对象,帮助数据库管理员(DBA)和开发人员解释由 performance_schema 收集的数据。

在本实验中,我们将重点关注 mysql 数据库。让我们切换到它:

USE mysql;

现在,让我们看看这个数据库中有哪些表:

SHOW TABLES;

你将看到一个很长的表列表。这些表存储了 MySQL 的各种配置和操作数据。

检查系统表中的数据

现在我们已经看到了系统表,让我们检查其中一个表中的数据。mysql 数据库中的 user 表包含了关于 MySQL 用户账户的信息。

运行以下命令以查看 user 表的结构:

DESCRIBE user;

这将显示 user 表中的所有列。你会看到很多列,因为该表包含了每个 MySQL 用户的详细信息。

现在,让我们查看该表中的一些数据。我们将重点关注几个关键列:

SELECT User, Host, Password_expired FROM user;

该查询从 user 表中选择四个重要列:

  • User:MySQL 账户的用户名
  • Host:允许该用户连接的主机
  • Password_expired:密码是否已过期

你应该会看到类似以下的输出:

+-------------+-----------+------------------+
| User        | Host      | password_expired |
+-------------+-----------+------------------+
| mariadb.sys | localhost | Y                |
| root        | localhost | N                |
| mysql       | localhost | N                |
+-------------+-----------+------------------+
3 rows in set (0.001 sec)

该输出显示了系统中存在的 MySQL 用户账户。root 用户是主要的管理账户,而其他账户是 MySQL 用于各种目的的系统账户。

要退出 MySQL shell,请输入:

EXIT;

这将返回到你的常规终端提示符。

总结

在本实验中,我们涵盖了在 Docker 环境中使用 MySQL 的基本步骤。我们验证了 MySQL 的安装,确保了初始设置的安全性,访问了 MySQL shell,探索了系统数据库,并检查了系统表中的数据。

我们学习了如何:

  1. 检查和管理 MySQL 服务状态
  2. 访问 MySQL shell
  3. 查看系统数据库
  4. 探索系统数据库中的表
  5. 从系统表中查询数据

这些基础技能为更高级的数据库管理任务奠定了基础。随着你继续深入学习 MySQL,你将基于这些基础知识创建自己的数据库,编写复杂的查询,并将 MySQL 与各种应用程序集成。记住,实践是掌握数据库管理的关键,所以不要犹豫,尝试不同的命令并进一步探索 MySQL 的功能。