🧠 一、基本原理
在MySQL中,数据库就是由一系列的目录和文件组成的逻辑集合。要列出MySQL服务器上的所有数据库,可以使用以下SQL语句:
SHOW DATABASES;
该命令会列出当前MySQL服务实例下,用户权限范围内可访问的所有数据库。
💻 二、实战案例讲解
📌 示例 1:基本查询
SHOW DATABASES;
✅ 输出结果可能如下:
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
| my_database |
+--------------------+
这些数据库包括:
information_schema:系统视图数据库,存储数据库结构信息。
mysql:存储用户、权限等系统信息。
performance_schema:性能监控相关数据。
sys:简化性能视图。
my_database:用户自建数据库。
📌 示例 2:带条件查询(需要配合权限控制)
如果你想只列出自己有访问权限的数据库,MySQL 会自动根据权限过滤显示的结果。
📌 示例 3:使用 INFORMATION_SCHEMA.SCHEMATA
SELECT SCHEMA_NAME FROM INFORMATION_SCHEMA.SCHEMATA;
这个语句等效于 SHOW DATABASES,但更适用于脚本或程序接口调用。
🛡️ 三、权限限制说明
要执行 SHOW DATABASES; 命令,用户至少需要具备以下权限之一:
SHOW DATABASES 权限,或者
对某个数据库具有某些权限(此时只能看到该数据库)
如果用户没有权限,可能只看到一个空列表或者有限的数据库。
🛠️ 四、配合命令行实战操作
bash
mysql -u root -p
登录后输入:
SHOW DATABASES;
或者在一行执行:
bash
mysql -u root -p -e "SHOW DATABASES;"
🧾 五、参考文献与官方文档
SHOW DATABASES 语法官方文档
🔗 https://dev.mysql.com/doc/refman/8.0/en/show-databases.html
INFORMATION_SCHEMA.SCHEMATA 表官方文档
🔗 https://dev.mysql.com/doc/refman/8.0/en/schemata-table.html
MySQL 权限系统介绍(GRANT 权限)
🔗 https://dev.mysql.com/doc/refman/8.0/en/privileges-provided.html
📘 权威书籍参考
《高性能 MySQL(第3版)》
Baron Schwartz、Peter Zaitsev、Vadim Tkachenko 等著
出版社:人民邮电出版社
ISBN:9787111369816
《MySQL技术内幕:InnoDB存储引擎》
作者:姚远
出版社:机械工业出版社
ISBN:9787111427844
《MySQL必知必会》
作者:Ben Forta
中文版出版社:清华大学出版社
ISBN:9787302268928