简介
在本实验中,我们将探索 MySQL 的基本配置和使用。MySQL 是最流行的开源关系型数据库管理系统(RDBMS)之一,广泛应用于许多数据库驱动的 Web 应用程序和热门网站。通过本实验,你将获得实际操作经验,包括验证 MySQL 安装、确保其初始设置的安全性、访问 MySQL shell 以及检查系统数据库和表。
在本实验中,我们将探索 MySQL 的基本配置和使用。MySQL 是最流行的开源关系型数据库管理系统(RDBMS)之一,广泛应用于许多数据库驱动的 Web 应用程序和热门网站。通过本实验,你将获得实际操作经验,包括验证 MySQL 安装、确保其初始设置的安全性、访问 MySQL shell 以及检查系统数据库和表。
为了方便起见,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 服务。
sudo service mysql start
等待几秒钟让服务启动,然后再次运行状态检查命令:
现在,让我们访问 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 命令的能力。原因如下:
因此,当你在提示符或输出中看到“MariaDB”时,只需记住,就本实验而言,你可以将其视为 MySQL。你在这里学到的所有技能都直接适用于现实场景中的 MariaDB 和 MySQL。
现在我们已经进入了 MySQL shell,让我们来探索系统数据库。这些是随 MySQL 预装的数据库,包含了关于 MySQL 服务器本身的重要信息。
在 MySQL shell 中,运行以下命令:
SHOW DATABASES;
注意:不要忘记命令末尾的分号(
;
)。SQL 命令必须以分号结尾。
该命令列出了 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,探索了系统数据库,并检查了系统表中的数据。
我们学习了如何:
这些基础技能为更高级的数据库管理任务奠定了基础。随着你继续深入学习 MySQL,你将基于这些基础知识创建自己的数据库,编写复杂的查询,并将 MySQL 与各种应用程序集成。记住,实践是掌握数据库管理的关键,所以不要犹豫,尝试不同的命令并进一步探索 MySQL 的功能。