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



我正在使用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();
}

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

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的分配-而不是双引号,我分配了单引号的值。

最新更新