SQLSTATE [HY000] [1045]尽管相同的用户名密码组合可用于mysql_connect,但拒绝用户访问

时间:2018-07-25 07:18:13

标签: php mysql pdo

我正在使用PDO连接到MySQL数据库。在本地主机中运行时,该代码非常完美。但是,当我将代码传输到Web服务器时(当然,我已经相应地更改了用户名和密码),代码不起作用。它给出了以下错误

SQLSTATE[HY000] [1045] Access denied for user 'xxx_xxxxx'@'localhost' (using password: YES)

当我使用不建议使用的旧API-具有相同用户名密码组合的mysql_connect()测试连接时,它可以完美工作,因此我知道用户名密码组合是正确的。

这是我的相关代码

try {
    $dsn = "mysql:dbname=company_dbname; host=localhost";
    $user = "company_dbuser";
    $password = "MyPassword";
    $options = array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC);
    $conn = new PDO($dsn, $user, $password, $options);
} catch (PDOException $e) {
    echo 'Connection failed: ' . $e->getMessage();
}

1 个答案:

答案 0 :(得分:0)

最终我能够解决问题 这是我编辑的代码

try {
    $dsn = "mysql:dbname=company_dbname; host=localhost";
    $user = 'company_dbuser';
    $password = 'MyPassword';
    $options = array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC);
    $conn = new PDO($dsn, $user, $password, $options);
} catch (PDOException $e) {
    echo 'Connection failed: ' . $e->getMessage();
}

请检查$ user和$ password分配-我分配了双引号,而不是双引号。