如何在 MySQL 中显示所有的数据库

2022-08-18 15:20:09 浏览数 (1)

MySQL 是最流行的开源关系数据库管理系统。本教程介绍如何通过命令行显示 MySQL 或 MariaDB 服务器中的所有数据库。

显示 MySQL 数据库

获取 MySQL 数据库列表的最常用方法是使用 mysql 客户端连接到 MySQL 服务器并运行 SHOW DATABASES 命令。

使用以下命令访问 MySQL 服务器,并在出现提示时输入您的 MySQL 用户密码:

代码语言:javascript复制
mysql -u user -p

如果您尚未为 MySQL 用户设置密码,则可以省略该 -p 开关。

在 MySQL shell 中执行以下命令:

代码语言:javascript复制
SHOW DATABASES;

该命令将打印用户拥有权限的所有数据库的列表。输出将类似于:

代码语言:javascript复制
 -------------------- 
| Database           |
 -------------------- 
| information_schema |
| opencart           |
 -------------------- 
2 rows in set (0.00 sec)

SHOW SCHEMAS 是可用于列出数据库的另一个命令, 它是 SHOW DATABASES 命令的同义词:

代码语言:javascript复制
SHOW SCHEMAS;

输出与使用 SHOW DATABASES 命令时的输出相同:

代码语言:javascript复制
 -------------------- 
| Database           |
 -------------------- 
| information_schema |
| opencart           |
 -------------------- 
2 rows in set (0.00 sec)
显示所有 MySQL 数据库

要列出 MySQL 服务器上的所有数据库,您需要以可以访问所有数据库的用户身份登录,默认情况下 root 用户是拥有查看所有数据库的权限。能够使用 SHOW DATABASES 列出所有的数据库。

使用 root 用户登录 MySQL:

代码语言:javascript复制
mysql -u root -p

运行 SHOW DATABASES 命令:

代码语言:javascript复制
SHOW DATABASES;

您将看到 MySQL 服务器上所有数据库的列表:

代码语言:javascript复制
 -------------------- 
|     Databases      |
 -------------------- 
| information_schema |
| database_name      |
| mysql              |
| opencart           |
| wordpress          |
| performance_schema |
| sys                |
 -------------------- 

7 rows in set (0.00 sec)
过滤结果

如果根据根据特定模式过滤命令的输出,请在运行 SHOW DATABASES 的时候使用 LIKE 子句。

代码语言:javascript复制
SHOW DATABASES LIKE pattern;

例如,以下语句将返回名称以 “open” 开头的所有数据库:

代码语言:javascript复制
SHOW DATABASES LIKE 'open%';
代码语言:javascript复制
 -------------------- 
| Database           |
 -------------------- 
| opencart           |
 -------------------- 
1 rows in set (0.00 sec)

百分号 (%) 表示零个,一个或多个字符。

如果要进行更复杂的搜索,可以从 information_schema 数据库中 schemata 表中根据条件查询。

以下语句将为您提供以 “open” 或 “word” 开头的所有数据库的列表:

代码语言:javascript复制
SELECT schema_name
FROM information_schema.schemata
WHERE schema_name LIKE 'open%' OR
schema_name LIKE 'word%';
代码语言:javascript复制
 -------------------- 
| Database           |
 -------------------- 
| opencart           |
| wordpress          |
 -------------------- 
2 rows in set (0.00 sec)

从命令行显示 MySQL 数据库

要在不登录 MySQL shell 的情况下获取数据库列表,您可以使用 mysql 命令带有 -e 选项(代表 execute),也可以使用 mysqlshow 显示数据库和表信息的命令。

当您想使用 shell 脚本使用 MySQL 数据库时,这尤其有用。

在终端上运行以下命令以显示所有数据库的列表:

代码语言:javascript复制
mysql -u user -p -e 'show databases;'
代码语言:javascript复制
 -------------------- 
| Database           |
 -------------------- 
| information_schema |
| opencart           |
 -------------------- 

以下是使用该 mysqlshow 命令的示例:

代码语言:javascript复制
mysqlshow -u user -p

输出将与上一个命令中的输出相同。

如果要过滤输出,可以使用 grep 命令。

结论

您已经学习了如何获取 MySQL 服务器中所有数据库的列表。

0 人点赞