XAMPP - 表 'users' 的用户 ''@'localhost' 拒绝 SELECT 命令

Posted

技术标签:

【中文标题】XAMPP - 表 \'users\' 的用户 \'\'@\'localhost\' 拒绝 SELECT 命令【英文标题】:XAMPP - SELECT command denied to user ''@'localhost' for table 'users'XAMPP - 表 'users' 的用户 ''@'localhost' 拒绝 SELECT 命令 【发布时间】:2013-06-26 22:20:57 【问题描述】:

不久前我删除并弄乱了 XAMPP 中的一些功能。

我重新安装它并移动/重命名了我的文件夹以及所有其他文件,所以我现在有一个新的 xampp 目录,它是空的和新鲜的。

但是当我尝试使用任何数据库功能时,它会出现如下错误:

SELECT command denied to user ''@'localhost' for table 'users'

怎么了?

谢谢。

【问题讨论】:

我遇到了类似的错误SELECT command denied to user ''@'localhost' for table 'pma_table_uiprefs'。我通过在 phpMyAdmin 根文件夹中打开 config.inc.php 并注释掉 $cfg['Servers'][$i]['pmadb'] = 'phpmyadmin'; 行来解决它 以上答案解决了我的问题。 【参考方案1】:

用户没有被授予读取表的权限。

通过主机的cpanel为数据库创建用户时,您可以赋予用户权限。

或者阅读这个文档通过mysql命令来做,

http://dev.mysql.com/doc/refman/5.1/en/grant.html

【讨论】:

你知道为什么@-sign前面的userid是空的吗?【参考方案2】:

你可以通过启用SELECT的使用来解决

GRANT SELECT ON db.table TO 'user'@'localhost';

将 db.table 上的所有内容授予 'user'@'localhost';

【讨论】:

【参考方案3】:

我刚刚授予了添加用户的访问权限,以使用 phpMyAdmin 数据库,它运行良好:

GRANT SELECT,UPDATE,DELETE,INSERT ON phpmyadmin.* TO user@'localhost' IDENTIFIED BY 'PASSWORD';

【讨论】:

【参考方案4】:

对我来说,at 符号之前的用户为空是找出问题的关键。

我有一个帐户 ''@localhost(它显示在 mysqladmin 中的 <anonymous>@localhost),mysql 正在登录我而不是我请求的用户。这是因为 mysql 根据某些逻辑而不是单独请求的用户名来选择您的用户。

删除匿名用户解决了这个问题。

【讨论】:

这是我一直在寻找的答案。如果您为一个适用于所有主机的用户创建一个帐户(例如 myuser@'%')并且 localhost 存在一个匿名用户(''@localhost),那么在本地连接时将使用匿名帐户作为 myuser,而不是myuser@'%' 帐户。您要么需要创建单独的 myuser@localhost 权限集,要么修改/删除匿名帐户设置。见dev.mysql.com/doc/refman/5.7/en/adding-users.html。

以上是关于XAMPP - 表 'users' 的用户 ''@'localhost' 拒绝 SELECT 命令的主要内容,如果未能解决你的问题,请参考以下文章

数据库中的 XAMPP 中的我的 SQL 错误。无法删除表中的用户

XAMPP 为 MariaDB 设置 root 用户密码

为啥我不能以 root 用户身份安装 XAMPP 的 Wordpress 模块? (苹果)

如何收集动态添加的行(HTML 表)的值(数据)?使用 php 和 XAMPP

错误:MySQL 意外关闭。 XAMPP,如何修复损坏的表

安装 XAMPP 后,我创建了一个数据库,但现在我重新安装了它,它要求新 XAMPP 中不存在的“user@DB”