该错误消息通常意味着我们正在使用的密码与MySQL认为该密码应该与我们所连接的用户的密码不匹配,或者与之匹配的MySQL用户不存在(尚未创建)。
在MySQL中,用户由用户名(“ test2”) 和 主机(“ localhost”)标识。
错误消息标识 用户 (“ test2”)和 主机 (“ localhost”)的值…
'test2'@'localhost'
我们可以使用来自客户端的查询来检查用户是否存在,我们可以从以下位置进行连接:
SELECt user, host FROM mysql.user
我们正在寻找一行,其中 user 为“ test2 ”, host 为“ localhost” 。
user host ------- ----------- test2 127.0.0.1 cleanup test2 ::1 test2 localhost
如果该行不存在,则可以将主机的通配符值设置为
%,以匹配任何不匹配的其他主机。
如果该行存在,则密码可能不匹配。我们可以更改密码(如果我们以具有足够特权的用户身份连接,例如
root
SET PASSWORD FOR 'test2'@'localhost' = PASSWORd('mysecretcleartextpassword')我们还可以验证用户是否对数据库中的对象具有特权。
GRANT SELECT ON jobs.* TO 'test2'@'localhost'
编辑
如果我们使用DML操作(INSERT,UPDATE,DELETE)对mysql特权表进行更改,则这些更改将在MySQL重新读取表之前生效。我们可以通过强制
FLUSHPRIVILEGES使用特权用户执行的语句重新读取来使更改生效。


![SQLSTATE [HY000] [1045]使用CakePHP对用户'username'@'localhost'的访问被拒绝 SQLSTATE [HY000] [1045]使用CakePHP对用户'username'@'localhost'的访问被拒绝](http://www.mshxw.com/aiimages/31/405210.png)
