MySQL数据库一览:查看主机上所有数据库的实战与详解

🧠 一、基本原理

在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;"

🧾 五、参考文献与官方文档

  1. SHOW DATABASES 语法官方文档
    🔗 https://dev.mysql.com/doc/refman/8.0/en/show-databases.html
  2. INFORMATION_SCHEMA.SCHEMATA 表官方文档
    🔗 https://dev.mysql.com/doc/refman/8.0/en/schemata-table.html
  3. MySQL 权限系统介绍(GRANT 权限)
    🔗 https://dev.mysql.com/doc/refman/8.0/en/privileges-provided.html

📘 权威书籍参考

  1. 《高性能 MySQL(第3版)》
    Baron Schwartz、Peter Zaitsev、Vadim Tkachenko 等著
    出版社:人民邮电出版社
    ISBN:9787111369816
  2. 《MySQL技术内幕:InnoDB存储引擎》
    作者:姚远
    出版社:机械工业出版社
    ISBN:9787111427844
  3. 《MySQL必知必会》
    作者:Ben Forta
    中文版出版社:清华大学出版社
    ISBN:9787302268928

posted on 2025-07-02 10:06  程序员极光  阅读(150)  评论(0)    收藏  举报

导航