MySQL 是最流行的开源关系数据库管理系统。本教程介绍如何通过命令行显示 MySQL 或 MariaDB 服务器中的所有数据库。 显示 MySQL 数据库 获取 MySQL 数据库列表的最常用方法是使用 mysql 客户
MySQL 是最流行的开源关系数据库管理系统。本教程介绍如何通过命令行显示 MySQL 或 MariaDB 服务器中的所有数据库。
显示 MySQL 数据库
获取 MySQL 数据库列表的最常用方法是使用 mysql 客户端连接到 MySQL 服务器并运行 SHOW DATABASES 命令。
使用以下命令访问 MySQL 服务器,并在出现提示时输入您的 MySQL 用户密码:
mysql -u user -p
如果您尚未为 MySQL 用户设置密码,则可以省略该 -p 开关。
在 MySQL shell 中执行以下命令:
SHOW DATABASES;
该命令将打印用户拥有权限的所有数据库的列表。输出将类似于:
+--------------------+
| 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:
mysql -u root -p
运行 SHOW DATABASES 命令:
SHOW DATABASES;
您将看到 MySQL 服务器上所有数据库的列表:
+--------------------+
| 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” 开头的所有数据库:
SHOW DATABASES LIKE 'open%';
+--------------------+
| Database |
+--------------------+
| opencart |
+--------------------+
1 rows in set (0.00 sec)
百分号 (%) 表示零个,一个或多个字符。
如果要进行更复杂的搜索,可以从 information_schema 数据库中 schemata 表中根据条件查询。
以下语句将为您提供以 “open” 或 “word” 开头的所有数据库的列表:
SELECT schema_name
FROM information_schema.schemata
WHERE schema_name LIKE 'open%' OR
schema_name LIKE 'word%';
+--------------------+
| Database |
+--------------------+
| opencart |
| wordpress |
+--------------------+
2 rows in set (0.00 sec)
从命令行显示 MySQL 数据库
要在不登录 MySQL shell 的情况下获取数据库列表,您可以使用 mysql 命令带有 -e 选项(代表 execute),也可以使用 mysqlshow 显示数据库和表信息的命令。
当您想使用 shell 脚本使用 MySQL 数据库时,这尤其有用。
在终端上运行以下命令以显示所有数据库的列表:
mysql -u user -p -e 'show databases;'
+--------------------+
| Database |
+--------------------+
| information_schema |
| opencart |
+--------------------+
以下是使用该 mysqlshow 命令的示例:
mysqlshow -u user -p
输出将与上一个命令中的输出相同。
如果要过滤输出,可以使用 grep 命令。
结论
您已经学习了如何获取 MySQL 服务器中所有数据库的列表。