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
命令的同义词:
SHOW SCHEMAS;
输出与使用 SHOW DATABASES
命令时的输出相同:
--------------------
| 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
命令:
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
子句。
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
命令的示例:
mysqlshow -u user -p
输出将与上一个命令中的输出相同。
如果要过滤输出,可以使用 grep 命令。
结论
您已经学习了如何获取 MySQL 服务器中所有数据库的列表。