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

在管理MySQL数据库服务器时,最常见的任务之一就是熟悉环境。这涉及一些任务,例如列出服务器上的数据库,查看指定数据库的表或获取用户帐户及其权限的信

3 min read
By myfreax
如何在MySQL中显示所有数据库

在管理MySQL数据库服务器时,最常见的任务之一就是熟悉环境。这涉及一些任务,例如列出服务器上的数据库,查看指定数据库的表或获取用户帐户及其权限的信息。

本教程说明了如何通过命令行显示MySQL或MariaDB服务器中的所有数据库。包括查找用户拥有的MySQL数据库,使用mysql的root用户查找所有MySQL数据库,使用LIKE过滤结果,使用mysql -e选项和mysqlshow命令从命令行打印所有MySQL数据库。

查找用户拥有的MySQL数据库

获取MySQL数据库列表的最常见方法是使用mysql客户端连接到MySQL服务器并运行SHOW DATABASES命令。使用以下命令访问MySQL服务器,并在出现提示时输入您的MySQL用户密码:

mysql -u user -p

如果您尚未为MySQL用户设置密码,则可以忽略-p选项。在MySQL Shell中执行以下SHOW DATABASES;sql语句:

SHOW DATABASES;

该sql语句将打印出用户拥有的所有数据库的列表。输出将类似于以下内容:

+--------------------+
| 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 DATABASESsql语句:

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服务器中所有数据库的列表。如有任何疑问,请随时发表评论。