MySQL可以';看不到数据库

MySQL可以';看不到数据库,mysql,database,Mysql,Database,当我通过PHPMyAdmin使用wade登录时,我看不到数据库source\u starcraft。我只执行了此查询,并在此查询之前创建了用户。似乎在授予权限的主机和正在使用的主机方面存在一些冲突/混淆 在FLUSH PRIVILEGES消除这种可能性后,我将看到登录后我被识别为哪个用户: GRANT SELECT ON source_starcraft.udb_ability TO `wade`@`localhost' 请注意,MySQL总是将登录名与最特定的主机相关联。看见然后将其与特权数

当我通过PHPMyAdmin使用
wade
登录时,我看不到数据库
source\u starcraft
。我只执行了此查询,并在此查询之前创建了用户。

似乎在授予权限的主机和正在使用的主机方面存在一些冲突/混淆

FLUSH PRIVILEGES
消除这种可能性后,我将看到登录后我被识别为哪个用户:

GRANT SELECT ON source_starcraft.udb_ability TO `wade`@`localhost'
请注意,MySQL总是将登录名与最特定的主机相关联。看见然后将其与特权数据库中的内容进行比较

SELECT user();

要解决这种情况,请
撤销
删除
+
刷新权限
引起冲突的故障(注意不要把自己弄到角落里),或者
向您的用户标识为的用户授予更多权限。

如果您登录到phpMyAdmin的用户确实具有查看数据库的正确权限,但您仍然无法看到该数据库,则可能意味着phpMyAdmin本身已配置为不显示该数据库。这最容易通过发出
显示数据库来验证phpMyAdmin中的SQL查询。如果您要查找的数据库出现,则至少允许用户查看它

有几个配置指令可以控制哪些数据库在phpMyAdmin的列表中可见。如果使用自动安装程序或脚本将phpMyAdmin添加到用户帐户,则它可能还只设置了\u db或隐藏\u db。官方phpMyAdmin文档(应包含在您的安装中)和上也对这些进行了描述


如果您的用户有权更改设置,您可以在phpMyAdmin中的“设置”和“功能”选项卡下更改当前会话的设置。要永久更改这些设置,您需要进行编辑。它的位置取决于phpMyAdmin在您的系统上的安装位置。

这里有一些东西对我帮助很大。实际上我是在使用MySQL工作台

简单地说,它说如果MySQL有一个帐户,并且您无法使用您的用户登录,那么您将以匿名用户的身份登录,而不另行通知。要了解这一点,您可以执行以下操作:

SELECT * FROM mysql.user WHERE user='wade';

SELECT * FROM mysql.db WHERE user='wade';
原因如下:

需要注意的一点是
selectuser()显示您的
当前用户名和主机。另一个命令,
选择当前用户()
显示您的身份验证


实际上,在我的例子中,
user()
mylogin@localhost
当前用户()
@localhost
(另一个用户)。

我昨天也遇到了同样的问题。我将数据文件HD交换到另一台MySQL服务器上(所有内容的版本都相同,全新副本,安装与预防性维护相同的密码)。有两个根访问权限,但我猜它们是不同的机器和MySQL启动时创建的密码哈希。当我列出文件时,两台服务器中的所有文件都完好无损,但是phpmyadmin看不到数据库(只是信息模式),即使使用MySQL thru shell也不可用,但是文件位于正确的位置

当检查不属于root的文件的所有权时,所有者是“nobody”,因此我使用
chown root:root*

因此,如果您认为只需通过交换HDs来替换数据,并在两个位置都使用root访问,那么您将很高兴成为露营者。但不要这么快,您可能需要检查这些文件的个人和所有权,以便能够在PHPMYADMIN中列出它们


在这个过程之后,重启后一切正常。

@Webnet-确保您运行了
刷新权限
良好的调用-尽管我这样做了,并以wade身份登录,但除了
信息模式
之外,我仍然看不到任何其他数据库。好的,您的数据库在哪里?它和phpmyadmin一样吗?本地主机可能是原因当我以自己(全局访问)身份登录时,我可以看到所有数据库。所以我不明白你的问题。。。。它们都在同一台计算机上,并且都显示在phpMyAdmin中。只有从本地主机连接时,才能使用“wade”@“localhost”帐户。“wade”@“%”帐户对主机部件使用“%”通配符,因此它可以用于从任何主机进行连接。
SELECT user()
returns
wade@localhost
您从命令行和phpmyadmin获得了相同的SELECT USER(),但只能从命令行查看数据库?Hmmm。。。。也许你正在使用非phpmyadmin方法连接到另一个盒子?它肯定是同一个盒子,这是我唯一的盒子
SELECT user(), current_user();