【问题标题】: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'; 行来解决它
  • 以上答案解决了我的问题。

标签: php sql phpmyadmin xampp


【解决方案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
      猜你喜欢
      • 2013-08-27
      • 2016-12-03
      • 2022-10-16
      • 2017-12-25
      • 2013-08-07
      • 1970-01-01
      • 1970-01-01
      • 2012-06-12
      • 2018-10-28
      相关资源
      最近更新 更多