如何查看MySQL服务器中的全部数据库

作者:袖梨 2026-08-14

SHOW DATABASES; 是唯一标准且跨版本兼容的查看所有数据库命令,需先登录 MySQL 客户端再执行,末尾分号不可省;它按当前用户权限过滤结果,不显示无访问权的数据库,如普通用户通常看不到 mysql 等系统库。

SHOW DATABASES; 是唯一可靠、标准且跨版本兼容的命令,执行后直接列出当前 MySQL 实例中所有数据库名称。

执行 SHOW DATABASES; 前必须已连接到 MySQL 服务

常见错误是没登录就敲命令,比如在 shell 终端直接输 SHOW DATABASES;,会报 command not found。正确流程是:

  1. 先用 mysql -u root -p(或带 -h-P 参数)登录 MySQL 客户端
  2. 成功进入 mysql> 提示符后再输入 SHOW DATABASES;
  3. 注意末尾分号不能省,否则命令不执行

SHOW DATABASES; 不显示权限不可见的数据库

MySQL 默认会过滤掉当前用户无访问权限的数据库——哪怕它们真实存在。例如普通用户执行该命令,通常看不到 mysqlperformance_schema 等系统库(除非显式授过权限)。这不是命令失效,而是权限控制行为。

如果你需要确认某个库是否存在但没列出来,可尝试:

  1. 用高权限账号(如 root)重新登录再执行
  2. information_schema.schemata 表:SELECT schema_name FROM information_schema.schemata WHERE schema_name LIKE '%xxx%';

别把 SELECT DATABASE(); 当成查看全部库的替代方案

SELECT DATABASE(); 只返回当前正在使用的数据库名(可能为 NULL),和“查看全部数据库”完全无关。混淆这两个命令是新手高频失误点。

顺带提醒:SHOW DATABASES; 输出结果里,information_schemamysqlperformance_schemasys 是 MySQL 自带的系统库,不能删、不应改,但可以被 SHOW DATABASES; 正常列出(取决于权限)。

真正容易被忽略的是权限上下文——同一句 SHOW DATABASES;,root 用户看到 5 个库,普通用户可能只看到 1 个,不是命令变了,是用户身份变了。

相关文章

精彩推荐