简介
在本实验中,我们将探索 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 标志用于在安装过程中自动对所有提示回答“yes”。
让我们从验证 MySQL 安装并检查其状态开始。
首先,点击桌面上的终端图标打开终端窗口:

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

你应该会看到指示 MySQL 已停止的输出。这是正常的,因为我们还没有启动 MySQL 服务。
sudo service mysql start
等待几秒钟让服务启动,然后再次运行状态检查命令:

访问 MySQL Shell
现在,让我们进入 MySQL shell 执行一些基本操作。
要访问 MySQL shell,请使用以下命令:
sudo mysql -u root
该命令使用 sudo 以管理员权限运行。mysql 命令用于访问 MySQL shell,-u root 标志指定以 root 用户身份连接。
在这种情况下无需提供密码,因为 LabEx 虚拟机上的 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 命令。原因如下:
- MariaDB 是 MySQL 的一个分支,由 MySQL 的原始开发者创建。它旨在作为 MySQL 的直接替代品,这意味着它与 MySQL 的语法和操作完全兼容。
- MariaDB 的创建是为了确保 MySQL 的真正开源版本始终可用。它在保持与 MySQL 高度兼容的同时,还提供了一些独特的功能和改进。
- 对于本实验以及大多数基础到中级的 MySQL 操作,你可以将 MariaDB 完全等同于 MySQL。我们在本实验中使用的所有命令在 MariaDB 和 MySQL 中都是一样的。
- MariaDB 通常被认为比 MySQL 更轻量、更快速,这使其成为像本实验这样的学习环境的绝佳选择。你可能会注意到响应速度更快,这能让你的学习体验更顺畅。
- 许多 Linux 发行版(包括某些版本的 Ubuntu)现在都将 MariaDB 作为其默认的 MySQL 兼容数据库系统,因为其开源特性和性能优势。
因此,当你看到提示符或输出中出现“MariaDB”时,只需记住在本实验中,你可以将其视为 MySQL。你在此处学到的所有技能都将直接适用于现实场景中的 MariaDB 和 MySQL。
探索系统数据库
让我们探索一下系统数据库。这些数据库是随 MySQL 预装的,包含了有关 MySQL 服务器本身的重要信息。
如果你仍处于步骤 2 的 MySQL shell 中,请先退出回到常规终端:
EXIT;
现在在终端中运行以下命令:
sudo mysql -u root -e "SHOW DATABASES;" | tee /home/labex/project/system_databases.txt
-e 选项告诉 MySQL 直接从终端执行 SQL 语句。tee 命令将输出的副本保存到 /home/labex/project/system_databases.txt,方便稍后查看结果。

该命令列出了 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 数据库。在终端中运行以下命令,列出该数据库中的表并将输出保存:
sudo mysql -u root -e "USE mysql; SHOW TABLES;" | tee /home/labex/project/mysql_tables.txt
你将看到一个很长的表列表。这些表存储了 MySQL 的各种配置和操作数据。
检查系统表中的数据
既然我们已经看到了系统表,现在让我们检查其中一个表的数据。mysql 数据库中的 user 表包含了有关 MySQL 用户账户的信息。
重新连接到 MySQL shell:
sudo mysql -u root
在出现 MariaDB [(none)]> 提示符后,切换到 mysql 数据库:
USE 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;
这将带你回到常规终端提示符。
总结
在本实验中,我们涵盖了在 LabEx 虚拟机中使用 MySQL 的基本步骤。我们验证了 MySQL 的安装,保护了初始设置,访问了 MySQL shell,探索了系统数据库,并检查了系统表中的数据。
我们学习了如何:
- 检查并管理 MySQL 服务状态
- 访问 MySQL shell
- 查看系统数据库
- 探索系统数据库中的表
- 从系统表中查询数据
这些基本技能构成了更高级数据库管理任务的基础。随着你继续深入学习 MySQL,你将在此基础上创建自己的数据库、编写复杂的查询,并将 MySQL 与各种应用程序集成。请记住,实践是掌握数据库管理的关键,所以请大胆尝试不同的命令,进一步探索 MySQL 的功能。



