2008-10-29 69 views
1

MySQL试图访问使用PHP-mysqli的数据库时出现错误“Access denied for user 'xxx'@'yyy'”,并且在使用命令行mysql工具时使用的用户名,密码,套接字,数据库和主机完全正常工作时,可能存在什么原因?
更新:
的确有三个用户在mysql.user表,每一个具有不同的主机(但具有相同的哈希密码),一个被设置为localhost,一到127.0.0.1,一个机器的主机名称。删除它们中的两个并将第三个主机改为“%”只有一个作用:现在访问也被使用命令行工具拒绝。 我做一个MySQL身份验证错误的原因:“访问拒绝用户xxx'@'yyy'”?

select user(); 
之前,在命令行

,并取得了那名在PHP否认同XXX @ YYY。

+0

你使用的是什么确切的命令行? – 2008-10-29 10:11:48

回答

3

如果任何人的兴趣依旧:我从来没有解决这个特定的问题。看起来问题出在我运行MySQL的硬件上。从那以后,我从来没有见过像这样的东西。

5

有时在PHP/MySQL的存在是在MySQL本地主机,127.0.0.1

之间的差异授予基于主机名访问,localusers这将是localhost。 我已经看到php尝试连接'myservername'而不是本地主机allthough在配置'localhost'被定义。

尝试授予在MySQL 127.0.0.1访问,并在PHP在127.0.0.1端口连接3306

0

我看了你更新后我会在/怀疑是错误的密码。 你在你的PW中使用“奇怪的”字符(可能导致utf-8/iso编码问题的东西)?

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

你可以创建另一个用户吗?如果“全部授予'''''''由'somesimplepw''语法确定,并尝试与该用户连接? 不要忘记“冲水privelidges”

有关信息如何创建新的用户克利克here

+0

特权(拼写) – glyph 2013-11-21 17:41:12

0

今天我的虚拟主机提供商的FTP服务有一些麻烦,所以我决定实现一个本地虚拟网络服务器在我的网站上工作。我已经用phpMyAdmin安装了EasyPHP 14.1,并且已经创建了我的用户和我的数据库。

第一次尝试:失败。我意识到我所寻找的桌子并不存在。 - >我解决了创建缺少的表。

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

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

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

第五次尝试:我赢了!

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

相关问题