我在这里真的有一个奇怪的问题,它真的开始烦我了。这是关于连接的不同行为。我只是想设置CakePHP,但PDO无法连接到mysql Server。
Okey,一步一步:它是一台新电脑,我刚刚安装了XAMPP(在Win7上)并下载了CakePHP。没有其他事情做过。在phpMyAdmin上,我使用PW'test'创建了一个用户'test',他拥有数据库'test'。简单,对吧?
这里是phpMysqlAdmin中用户/权限表的行:
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的'使用密码:是',我无法连接PDO(和蛋糕使用PDO):
$dbh = new PDO('mysql:host=localhost;dbname=test', 'test', 'test');
错误讯息:
错误!:SQLSTATE [28000] [1045]拒绝用户访问 'test'@'localhost'(使用密码:YES)
它不能太复杂,我只想用正确的凭据连接到新安装的数据库。我究竟做错了什么?我读过许多类似的问题,但没有为我自己的问题找到解决方案。
是的,密码真的是'测试' - 我不知道为什么mysql_connect()whitout PW可以连接 - 是否默认使用用户名作为PW?
这真的不能那么辛苦
感谢您的帮助, 祝你今天愉快。
编辑(回答问题)
这里是DB权限的条目(在user:test中): - 用户似乎拥有DB'test'的所有权利
Database Rights GRANT
test ALL PRIVILEGES Nein
答案 0 :(得分:3)
GRANT ALL ON test.* TO test@localhost IDENTIFIED BY "test";
在mysql shell上运行上面的查询,一切都应该有效。