错误!:SQLSTATE [HY000] [1045]访问被拒绝用户' root' @' localhost' (使用密码:否)

时间:2015-07-31 11:04:02

标签: php mysql database pdo

我已经阅读了很多关于这个错误的其他问题,但它并没有解决我的问题,这就是我提出这个问题的原因,尽管许多人一直在想我这个问题。

这是我的connect.php

<?php

$user = 'root';
$pass = '';


try{
    $dbh = new PDO('mysql:host=localhost;dbname=Login', $user, $pass);
    foreach($dbh->query('SELECT * from FOO') as $row){
        print_r($row);
    }

    $dbh = null;
} catch (PDOException $e){
    print "ERROR!:" . $e->getMessage() . "<br/>";
    die();

}

但是我遇到了麻烦,我确信$ user和$ pass是正确的,但我仍然继续收到此消息,我是PDO的新手 - 这可以与它有什么关系吗?

当我在本地主机上加载时,我收到错误消息:

  

错误!:SQLSTATE [HY000] [1045]拒绝用户访问   &#39;根&#39; @&#39;本地主机&#39; (使用密码:否)

对我而言,似乎这条错误消息告诉我它不是$pass = 'NO'或者$ pass是错的?我尝试更改$pass = 'NO';并收到以下错误:

  

错误!:SQLSTATE [HY000] [1045]拒绝用户访问   &#39;根&#39; @&#39;本地主机&#39; (使用密码:是)

然后 - 在这里玩傻我改变$pass = 'YES'; 给我这个错误:

  

错误!:SQLSTATE [HY000] [1045]拒绝用户访问   &#39;根&#39; @&#39;本地主机&#39; (使用密码:是)

1 个答案:

答案 0 :(得分:1)

如果您正在使用wamp,这可能是一种可能的解决方案。

- &GT;将localhost更改为127.0.0.1。 所以它变成

<?php

$user = 'root';
$pass = '';


try{
    $dbh = new PDO('mysql:host=127.0.0.1;dbname=Login', $user, $pass);
    foreach($dbh->query('SELECT * from FOO') as $row){
        print_r($row);
    }

    $dbh = null;
} catch (PDOException $e){
    print "ERROR!:" . $e->getMessage() . "<br/>";
    die();

}

另外,只需将所有连接代码放在不同的文件中,例如&#34; dbconnector.php&#34;。将其包含在您需要使用数据库的每个页面中。现在,您可以通过$dbh变量访问连接。