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 -u user -p命令访问MySQL服务器,并在出现提示时输入您的MySQL用户密码。

如果您尚未为MySQL用户设置密码,则可以忽略-p选项。在MySQL Shell中执行以下SHOW DATABASES;sql语句。该sql语句将打印出用户拥有的所有数据库的列表。

可以用来列出数据库的另一个命令SHOW SCHEMAS。是SHOW DATABASES命令的同义词。输出将与使用SHOW DATABASES命令时的输出相同。

SHOW DATABASES;
SHOW SCHEMAS;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| opencart           |
+--------------------+
2 rows in set (0.00 sec)

查找所有MySQL数据库

要列出MySQL服务器上的所有数据库,您需要以可以访问所有数据库的用户登录,默认情况下该用户是MySQL的root用户或设置了全局SHOW DATABASES权限的用户。

运行mysql -u user -p命令使用MySQL root用户登录。运行SHOW DATABASESsql语句。您将看到My​​SQL服务器上所有数据库的列表。

SHOW DATABASES;
+--------------------+
|     Databases      |
+--------------------+
| information_schema |
| database_name      |
| mysql              |
| opencart           |
| wordpress          |
| performance_schema |
| sys                |
+--------------------+

7 rows in set (0.00 sec)

过滤结果

LIKE子句可用于SHOW DATABASES,它根据指定模式过滤SQL语句的输出。模式可以使用百分号%表示零个,一个或多个字符。

如果要进行更复杂的搜索,请从information_schema数据库中查询schemata表,它是包含所有数据库信息的表。

SHOW DATABASES LIKE 'open%';语句将为您提供所有以open或word开头的数据库的列表。

SHOW DATABASES LIKE 'open%';

SELECT schema_name
FROM information_schema.schemata
WHERE schema_name LIKE 'open%' OR
schema_name LIKE 'word%';

+--------------------+
| Database           |
+--------------------+
| opencart           |
+--------------------+
1 rows in set (0.00 sec)

从命令行显示MySQL数据库

要获取数据库列表而不登录到MySQL Shell,可以使用mysql-e选项的命令,即运行指定的SQL语句。

或者使用mysqlshow显示数据库和表信息的命令。当您想使用shell脚本处理MySQL数据库时,这特别有用。

在终端上运行mysql -u user -p -e 'show databases;'命令以显示所有数据库的列表。如果使用mysqlshow命令,你可以这样运行命令mysqlshow -u user -p

输出将与show databases;语句的输出相同。如果要过滤输出,可以使用grep命令过滤输出

+--------------------+
| Database           |
+--------------------+
| information_schema |
| opencart           |
+--------------------+

结论

您已经了解了如何获取MySQL服务器中所有数据库的列表。如有任何疑问,请随时发表评论。