4

我真的在这里遇到了一个奇怪的问题,它真的开始让我烦恼。这是关于连接的不同行为。我只是想设置 CakePHP,但 PDO 无法连接到 mysql 服务器。

好的,一步一步:这是一台新电脑,我刚刚安装了 XAMPP(在 Win7 上)并下载了 CakePHP。没有做其他任何事情。在 phpMyAdmin 上,我使用 PW 'test' 创建了一个用户 'test',他拥有数据库 'test'。很简单,对吧?

这里,phpMysqlAdmin 中的 User/Rights 表的行:

User Host Password Global Rights GRANT
test %    Yes      USAGE         No

现在,到真正的问题:

这有效:

$link = mysql_connect('localhost', 'test'); //<- not using the 3. parameter, 'password'

但是,什么应该起作用,不:

$link = mysql_connect('localhost', 'test', 'test'); //<- using the 3. parameter, 'password'

而且由于我似乎无法“删除” PDO 的“使用密码:YES”,因此我也无法与 PDO 连接(并且蛋糕使用 PDO):

$dbh = new PDO('mysql:host=localhost;dbname=test', 'test', 'test');

错误信息:

错误!:SQLSTATE [28000] [1045] 用户'test'@'localhost'的访问被拒绝(使用密码:YES)

不可能这么复杂,我只想使用正确的凭据连接到新安装的数据库。我究竟做错了什么?我阅读了许多类似的问题,但没有找到解决我自己问题的方法。

是的,密码确实是“测试”-我不知道为什么 mysql_connect() whitout PW 可以连接-它是否默认使用用户名作为 PW?

这真的不能那么难

感谢您的帮助,祝您有美好的一天。

编辑(回答问题)

这里是数据库权限的条目(在用户:测试中): - 用户似乎确实拥有数据库“测试”的所有权限

Database Rights         GRANT 
test     ALL PRIVILEGES Nein
4

1 回答 1

3

GRANT ALL ON test.* TO test@localhost IDENTIFIED BY "test";

在 mysql shell 上运行上述查询,一切正常。

于 2012-05-03T07:41:17.160 回答