在管理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 DATABASES
sql语句。您将看到MySQL服务器上所有数据库的列表。
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服务器中所有数据库的列表。如有任何疑问,请随时发表评论。