繁体   English   中英

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

[英]ERROR!:SQLSTATE[HY000] [1045] Access denied for user 'root'@'localhost' (using password: NO)

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

这是我的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] 用户 'root'@'localhost' 访问被拒绝(使用密码:NO)

对我来说,这个错误消息似乎告诉我$pass = 'NO'它没有或者 $pass 是错误的? 我试图改变$pass = 'NO'; 并得到以下错误:

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

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

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

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

-> 将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();

}

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM