代码之家  ›  专栏  ›  技术社区  ›  Raphael Schweikert miya

mysql认证错误的原因:“用户'xxx'@'yyy'拒绝访问”?

  •  1
  • Raphael Schweikert miya  · 技术社区  · 16 年前

    mysql出现错误的可能原因是什么? “Access denied for user 'xxx'@'yyy'” 当尝试使用php mysqli访问数据库时,当使用命令行mysql工具时,使用的用户名、密码、套接字、数据库和主机完全相同,工作正常吗?
    更新:
    确实有三个用户 mysql.user 表,每个表具有不同的主机(但具有相同的哈希密码),一个设置为localhost,一个设置为127.0.0.1,一个设置为机器的主机名。删除其中两个并将第三个主机更改为__%226;_只有一个效果:现在使用命令行工具也拒绝访问。 我确实做了

     select user();
    

    在此之前,在命令行中,它生成了在PHP中被拒绝的相同的xxx@yyy。

    4 回复  |  直到 11 年前
        1
  •  5
  •   Huibert Gill    16 年前

    有时候在php/mysql中,localhost和127.0.0.1之间存在差异

    在MySQL中,您根据主机名授予访问权限,对于本地用户,这将是本地主机。 我见过php试图用“myservername”而不是localhost连接,尽管在配置中定义了“localhost”。

    尝试在mysql中为127.0.0.1授予访问权限,并通过127.0.0.1端口3306在php中连接。

        2
  •  3
  •   Raphael Schweikert miya    12 年前

    以防任何人仍然感兴趣:我从未解决过这个特定的问题。似乎问题出在我运行MySQL的硬件上。从那以后,我再也没有见过类似的东西了。

        3
  •  0
  •   Huibert Gill    16 年前

    在我阅读了你的更新之后,我会怀疑密码中有错误。 您是否在密码中使用了“奇怪”字符(可能导致UTF-8/ISO编码问题)?

    在主机字段中使用%将允许用户从任何主机连接。所以唯一可能出错的就是密码。

    你能创建另一个用户吗?用“somesimplepw”语法标识的“…”@“%”的“全部授予”在哪里,并尝试与该用户连接? 别忘了“冲洗私人物品”

    有关如何创建新用户的信息,请单击 here

        4
  •  0
  •   ste.cape    11 年前

    今天,我的网站托管提供商的FTP服务出现了一些问题,所以我决定实现一个本地的虚拟Web服务器,以便在我的网站上工作。我已经用phpmyadmin安装了easyphp 14.1,并用表创建了我的用户和数据库。

    第一次尝试:失败。我意识到我要找的桌子不存在。->我解决了创建丢失的表的问题。

    第二次尝试:失败。我意识到我为新用户设置的用户名与我用于连接的用户名不同。->我编辑了用户名。

    第三次尝试:失败。我意识到新的数据库名称不同于我在站点中用于连接的数据库名称。->我编辑了数据库名称。

    第四次尝试:失败。我意识到在我的新用户的权限之间没有“授予”。我甚至不知道“grant”是什么意思,但让我们尝试启用它--添加了“grant”特权。

    第五次尝试:我赢了!

    我希望我的小冒险能帮助别人。=)

    推荐文章