如何列出MySQL数据库(分步代码教程)插图

MySQL是当今最广泛使用的关系型数据库管理系统(RDBMS)之一。它是一个强大的数据库平台,允许创建和管理可扩展的数据库,主要使用结构化查询语言(SQL)。

MySQL服务器是数据库所处的环境–也是它们被访问的地方。作为一个服务器管理员,你经常需要检索这个环境的细节–列出服务器上的数据库,显示特定数据库的表,查看用户角色和权限,访问约束条件,等等。

本文将解释如何通过命令提示符列出MySQL数据库的详情办法。

  1. 列出MySQL数据库的先决条件
  2. 在你的系统变量环境中添加MySQL路径
  3. 登录到MySQL
  4. 显示MySQL服务器内的数据库
  5. 过滤数据库输出的结果
  6. 使用信息结构来查询表元数据
  7. 常见的问题和最佳做法
  8. 数据库管理员

列出MySQL数据库的先决条件

你必须在你的本地机器上运行MySQL服务器才能开始使用。如果你没有MySQL,有几种方法可以安装它。

  • 安装WAMPServer、XAMPP、MAMP或任何其他包括MySQL的软件分发栈。
  • 直接从他们的官方网站下载并运行MySQL安装程序,通过设置过程来配置和安装MySQL服务器和其他工具。

为了方便地使用命令行运行MySQL命令,你需要将MySQL可执行文件的路径添加到你的系统环境中。如果你使用选项二安装了MySQL,这一步就没有必要了,所以可以随意跳过下一节。

将MySQL路径添加到你的系统的变量环境中

如果你在Windows电脑上运行XAMPP或WAMP,本节将指导你把MySQL可执行路径添加到你的系统变量环境中。

首先,启动你的Windows文件资源管理器并导航到此电脑。点击你安装WAMP或XAMPP软件包的驱动器(C:)。

如果你正在运行XAMPP,导航到xampp > mysql > bin,并复制bin文件夹的完整路径。对于WAMP,通过{your-wamp-version} > bin > mysql > {your-mysql-version} > bin导航到其完整路径。

如何列出MySQL数据库(分步代码教程)插图1

bin文件夹的完整路径

点击 “Start“菜单,搜索 “path”。点击Edit the system environment variable

然后,点击Startup and Recovery(启动和恢复)下的Environment Variables(环境变量),选择PATH变量并点击编辑

接下来,点击 “新建“,粘贴你的MySQL可执行文件的完整路径(你之前复制的)。

如何列出MySQL数据库(分步代码教程)插图2

编辑环境变量

然后,通过单击 “确定 “来保存这些更改。

现在路径已被添加,你可以在终端执行MySQL命令。

登录到MySQL

要列出MySQL数据库,用户必须被授权访问所有数据库,或者你必须设置一个全局的SHOW DATABASES权限,授予所有用户访问权。

在通过命令提示符登录之前,请确保你的MySQL服务器正在运行。

mysql -u  -p

注意:用你的用户名替换 u 。MySQL的默认用户名是 root,而密码是空的(默认没有密码)。

如何列出MySQL数据库(分步代码教程)插图3

登录到MySQL

显示MySQL服务器中的数据库

现在你已经登录了,你可以通过执行 SHOW DATABASES 命令列出服务器中存在的MySQL数据库。

SHOW DATABASES;

在返回数据中,你会得到存储中存在的所有数据库。

如何列出MySQL数据库(分步代码教程)插图4

存储的数据库的列表

 

在返回的六个数据库中,information_schemaperformance_schema是安装MySQL时自动生成的默认数据库。

information_schema 数据库是一个不可修改的数据库,它存储了与数据库和其他存储在MySQL服务器中的对象(视图、用户权限、表、约束等)有关的所有信息。

过滤数据库输出的结果

以前,你用 SHOW DATABASES返回MySQL服务器上的所有数据库,但你经常需要过滤数据库输出,主要是当服务器上有许多数据库时。

LIKE 子句根据一个指定的模式过滤 SHOW DATABASE 的结果。下面是一般的语法。

SHOW DATABASES LIKE '';

它必须是一个代表你想匹配的模式的字符串。该字符串必须以百分比符号(%)结尾,表示一个或多个字符。

例如,如果你想只显示名称以字母w开头的数据库,你可以通过运行以下程序来实现。

SHOW DATABASES LIKE 'w%';

下面是过滤后的结果。

如何列出MySQL数据库(分步代码教程)插图5

使用’w%’过滤后的数据库响应

使用信息结构来查询表元数据

早些时候,你看到了 information_schema 数据库如何在MySQL服务器环境中存储与数据库、表和其他对象有关的所有信息。

information_schema 数据库利用schemata表来存储所有数据库的信息。对于数据库的过滤,你可以进行复杂的搜索,以查询特定数据库的模式表。

例如,如果你想要那些名字以 “samp “或 “word “开头的数据库,你可以结合其他几个子句来进行复杂查询。

SELECT schema_name FROM information_schema.schemata WHERE schema_name LIKE 'samp%' OR schema_name LIKE 'word%';

下面是结果。

如何列出MySQL数据库(分步代码教程)插图6

复杂查询的结果

此外,你还有来自 information_schema 数据库的tables表,它包含了所有表的信息。同样,你可以执行一个查询,只检索符合指定模式的表。

例如,下面的查询只返回WordPress表的模式信息–只返回名称以 “wp_”开头的表。

SELECT * FROM information_schema.tables WHERE table_name LIKE 'wp_%';

结果是这样的。

如何列出MySQL数据库(分步代码教程)插图7

只有WordPress表的信息结构的结果

在 information_schema 中发现的其他表格包括columnsconstraintstable_constraintscheck_constraintsreferential_constraints

常见的问题和最佳做法

执行SQL时最常见的错误原因之一是没有在语句的结尾使用分号。

另一个原因是使用无效的SQL语法或表/列名称拼写错误。为了避免这种情况,请交叉检查表或列的名称,确保其拼写正确。请确保也要交叉检查你的语法。

这里有一些其他的最佳做法要记住。

对SQL关键词使用大写字母

当写SQL代码时,总是对SQL关键字使用大写字母,对表名和列名使用小写字母。这使你的代码更易读,更不容易出错。

所以,与其这样:

select * from information_schema.tables where table_name like 'wp_%';

不如这样做:

SELECT * FROM information_schema.tables WHERE table_name LIKE 'wp_%';

避免使用 SELECT *

避免在你的SQL查询中使用SELECT *。你的请求是不明确的,因为你不能总是知道它将返回什么。相反,指定你想从表中选择的列。

所以,与其这样:

SELECT * EXCEPT(phone) FROM users.profile

不如这样:

SELECT name,
    dob,
    address,
    country,
    address,
FROM user.profile

缩进你的代码

最后,还有一个使查找错误更容易的提示是缩进你的代码。这将使它更有可读性。

数据库管理器

另外,你可以选择通过使用数据库管理器来管理你的数据库,而不用写SQL。这允许用户访问数据库管理功能,而不需要编写SQL查询。这个软件连接到MySQL服务器,并提供一个用户界面来暴露数据库的功能。一旦连接,用户界面将显示服务器上的所有数据库。各个管理工具的外观和感觉各不相同,但过程是相似的。

如何列出MySQL数据库(分步代码教程)插图8

DevKinsta的数据库管理器

有几个工具可供选择,包括 phpMyAdmin 和 Adminer,这两个工具都可以通过 DevKinsta 访问。DevKinsta的默认管理工具是Adminer,因为它是轻量级的,简单的,快速的,但phpMyAdmin也可以轻松访问。

小结

作为一名服务器管理员,你需要能够有效和准确地检索关于你的MySQL服务器上的数据库的详细信息。查看服务器上有哪些数据库,查看特定的表和其中的信息,以及访问有关用户角色和权限的信息,这些都是至关重要的任务。幸运的是,从你的命令行使用SQL可以使这一切变得轻而易举。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。