SHOW DATABASES; 是唯一标准且跨版本兼容的查看所有数据库命令,需先登录 MySQL 客户端再执行,末尾分号不可省;它按当前用户权限过滤结果,不显示无访问权的数据库,如普通用户通常看不到 mysql 等系统库。
SHOW DATABASES; 是唯一可靠、标准且跨版本兼容的命令,执行后直接列出当前 MySQL 实例中所有数据库名称。常见错误是没登录就敲命令,比如在 shell 终端直接输 SHOW DATABASES;,会报 command not found。正确流程是:
mysql -u root -p(或带 -h、-P 参数)登录 MySQL 客户端SHOW DATABASES;
MySQL 默认会过滤掉当前用户无访问权限的数据库——哪怕它们真实存在。例如普通用户执行该命令,通常看不到 mysql、performance_schema 等系统库(除非显式授过权限)。这不是命令失效,而是权限控制行为。
如果你需要确认某个库是否存在但没列出来,可尝试:
information_schema.schemata 表:SELECT schema_name FROM information_schema.schemata WHERE schema_name LIKE '%xxx%';
SELECT DATABASE(); 只返回当前正在使用的数据库名(可能为 NULL),和“查看全部数据库”完全无关。混淆这两个命令是新手高频失误点。
顺带提醒:SHOW DATABASES; 输出结果里,information_schema、mysql、performance_schema、sys 是 MySQL 自带的系统库,不能删、不应改,但可以被 SHOW DATABASES; 正常列出(取决于权限)。
SHOW DATABASES;,root 用户看到 5 个库,普通用户可能只看到 1 个,不是命令变了,是用户身份变了。