phpmyadmin 不显示架构

phpmyadmin 不显示架构

我有一台包含大量 mysql 数据库的服务器。最近,以 Root 身份登录时,某些架构已停止显示。

root 用户 - 至今一直使用

如果我使用该特定数据库的登录,那么我就可以看到它。

直接用户

此数据库的“所有者”是 root,但 root 看不到的其他数据库则归其他人所有。

似乎我们最近访问和处理的数据库消失了,但现在有超过 5 个数据库不可见。这不是本地缓存,任何使用 root 登录的人都会遇到同样的问题。

答案1

如果你的当前用户()没有说root@localhost,那么您没有 root 权限,并且不允许以此权限进行连接。

要查看连接后你拥有的实际权限,请运行此命令

SHOW GRANTS;

当你连接到特定数据库时,你应该能够看到

  • 该数据库的表
  • INFORMATION_SCHEMA 中针对该数据库的元数据

假设你连接到 buyspace_systdb

输出SHOW GRANTS;很可能会出现这样的情况

GRANT USAGE ON *.* ...
GRANT ALL PRIVILEGES ON buyspace_systdb.* TO ...

如果您从本地服务器内登录,则用户root@localhost将可以工作。如果您是远程登录,则root@localhost不允许用户()验证身份当前用户()。这方面的证据在您的问题中的第一个显示中。请注意,您只能看到 information_schema。它实际上将为空,但 information_schema.schemata 除外,它有 1 或 2 个条目。如果root@'%'存在于 中mysql.user并且具有与 相同的权限root@localhost,那么它将被允许查看所有内容,例如root@localhost

MySQL 的身份验证方案具有螺旋式下降效应。如果您尝试连接的用户不存在,它将尝试更模糊的用户名(允许使用通配符或有限的权限)。请参阅我的 DBA StackExchange 帖子MySQL 错误:拒绝用户‘a’@‘localhost’访问(使用密码:是) 了解更多详细信息。

结论:您无法root@localhost从远程位置进行连接

相关内容