数据库连接与 SQL Shell

MySQLBeginner
立即练习

简介

MySQL 和 MariaDB 是用于存储和组织应用程序数据的关系型数据库系统。与普通文件不同,数据库服务器专门用于以受控方式处理结构化查询、并发访问、权限和持久化存储。

这意味着,你通常不会使用文本编辑器打开数据库文件并手动修改。你需要通过数据库客户端与数据库交互,而服务器会负责执行语法、权限和数据一致性方面的规则。

要管理数据,你需要了解如何与数据库服务器通信。在本实验中,你将学习使用命令行连接 MySQL、进入 SQL Shell,以及交互式浏览数据库的基本流程。

你将练习每位数据库管理员都需要掌握的核心流程:

  1. 连接到服务器。
  2. 查看服务器上存储的数据库。
  3. 选择要操作的指定数据库。
  4. 完成操作后安全断开连接。

连接数据库服务器

要与 MySQL 数据库交互,请使用 mysql 命令行客户端。这个工具可以向服务器发送命令并查看结果。

在本步骤中,你将以 root 用户登录。root 用户是拥有数据库服务器全部访问权限的超级管理员账户。

注意,不要把数据库的 root 用户与 Linux 的 root 用户混淆。它们属于不同系统中的两个不同管理身份,虽然都表示较高权限。

在终端中运行以下命令:

mysql -u root -p

选项说明:

  • -u root:指定要使用的用户名(root)。
  • -p:要求客户端提示你输入密码。

按下 Enter 键后,系统会要求你输入密码。

输入 **root**,然后按 Enter 键。

安全提示:在 Linux 终端中输入密码时,屏幕上不会显示任何字符(不会显示星号或圆点)。这是为了防止旁人通过屏幕看到密码长度。直接输入 root,然后按 Enter 键即可。

身份验证成功后,命令行提示符会变为 mysql>。这表示你已经离开 Linux Shell,进入 MySQL 环境。

从此开始,你输入的命令会作为 SQL 语句发送给数据库服务器。提示符发生变化,是因为你现在处于不同的命令语言和上下文中。

查看可用数据库

连接成功后,你可以查看服务器上存储了哪些数据。单个 MySQL 服务器可以管理多个不同的数据库,例如分别用于博客、用户目录和指标数据的数据库。

要列出当前用户有权访问的所有数据库,请在 mysql> 提示符下运行以下 SQL 命令:

SHOW DATABASES;

重要规则:在 SQL 中,命令必须以分号 ; 结尾。

这是 SQL 客户端判断一条语句结束位置的方式之一。在交互式 Shell 中,分号相当于明确的「立即执行」标记。

它会告诉服务器:「命令已经输入完毕,请立即执行。」

如果忘记输入分号就按下 Enter 键,你会看到 -> 提示符。这表示服务器正在等待你完成命令。只需输入 ;,然后按 Enter 键即可修正。

你应该会看到一个数据库列表,其中包括 information_schema、mysql、performance_schema 和 sys 等标准系统数据库。

选择数据库

在读取或写入数据表之前,你必须告诉 MySQL 要操作哪个数据库。这样会设置当前「上下文」,后续查询就不必每次都输入数据库名称。

单个数据库服务器可以承载多个相互独立的数据库。USE 命令会更改当前上下文,使后续 SQL 语句针对选定的数据库执行。

我们将选择名为 mysql 的内部系统数据库。该数据库存储用户账户和权限信息。

执行以下命令:

USE mysql;

你应该会看到以下消息:Database changed。

注意:USE 命令是一个特殊例外,严格来说不一定需要分号,但建议始终保留分号,以养成良好习惯。

退出 SQL Shell

完成数据库操作后,应正确关闭连接。这样会返回标准的 Linux 命令行。

要退出 MySQL Shell,请输入:

exit

你会看到消息 Bye,命令行提示符也会返回熟悉的 labex:~/project$。

提示:你也可以使用 quit,或按键盘快捷键 Ctrl + D 退出。

总结

在本实验中,你学习了数据库交互的「Hello World」基础流程:

  • 使用 mysql -u -p 安全连接数据库。
  • 使用 SHOW DATABASES; 查看可用数据库。
  • 使用 USE <database>; 切换上下文。
  • 安全退出数据库环境。

这四条简单命令构成了后续使用 MySQL 的基础。