在管理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服务器上的所有数据库,您需要以可以访问所有数据库的用户身份登录,默认情况下该用户是MySQL的root用户或设置了全局SHOW DATABASES特权。

登录MySQL root用户:

mysql -u user -p

运行SHOW DATABASES命令:

SHOW DATABASES;

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

+--------------------+
|     Databases      |
+--------------------+
| information_schema |
| database_name      |
| mysql              |
| opencart           |
| wordpress          |
| performance_schema |
| sys                |
+--------------------+

7 rows in set (0.00 sec)

过滤结果

LIKE子句可用于SHOW DATABASES根据特定模式过滤命令的输出。

SHOW DATABASES LIKE pattern;

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

SHOW DATABASES LIKE 'open%';
+--------------------+
| Database           |
+--------------------+
| opencart           |
+--------------------+
1 rows in set (0.00 sec)

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

如果要进行更复杂的搜索,请schematainformation_schema数据库中查询包含有关所有数据库信息的表。

以下语句将为您提供所有以“ 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服务器中所有数据库的列表。

如有任何疑问,请随时发表评论。

如果你喜欢我们的内容可以选择在下方二维码中捐赠我们,或者点击广告予以支持,感谢你的支持