如何在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服务器上的所有数据库,我们需要以可以访问所有数据库的用户身份登录,默认情况下,该用户是MySQL的root用户或者设置了全局“ SHOW DATABASES”特权。
登录MySQL root用户:
mysql -u user -p
运行“ SHOW DATABASES”命令:
SHOW DATABASES;
我们会看到MySQL服务器上所有数据库的列表:
+--------------------+ | 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)
百分号('%')表示零个,一个或者多个字符。
如果要进行更复杂的搜索,请从“ information_schema”数据库中查询“ schemata”表,该表包含有关所有数据库的信息。
以下语句将为我们提供所有以“ open”或者“ word”开头的数据库的列表:
SELECT schema_nameFROM information_schema.schemataWHERE schema_name LIKE 'open%' OR schema_name LIKE 'word%';
+--------------------+ | Database | +--------------------+ | opencart | | wordpress | +--------------------+ 2 rows in set (0.00 sec)
从命令行显示MySQL数据库
要获取数据库列表而不登录到MySQL Shell,可以使用带有“ -e”选项(代表execute)的“ mysql”命令或者显示数据库和表信息的“ mysqlshow”。
当我们想使用shell脚本处理MySQL数据库时,这特别有用。
在终端上运行以下命令以显示所有数据库的列表:
mysql -u user -p -e 'show databases;'
+--------------------+ | Database | +--------------------+ | information_schema | | opencart | +--------------------+
这是使用“ mysqlshow”命令的示例:
mysqlshow -u user -p
输出将与上一个命令的输出相同。
如果要过滤输出,可以使用grep命令。