【问题标题】:SQLSTATE[28000] [1045] : Strange PDO error after server provider crashSQLSTATE[28000] [1045]:服务器提供程序崩溃后出现奇怪的 PDO 错误
【发布时间】:2013-03-06 22:47:39
【问题描述】:

在服务器崩溃后,我们的数据库出现了一个奇怪的错误...

密码和用户正确,我们使用简单的PDO连接:

session_start();
ini_set('display_errors', 1);
ini_set('log_errors', 1);
try
{
    $bdd = new PDO('mysql:host=localhost;dbname=databaseName', 'correctUSER','correctPassword');
    die('ok');
}
catch(Exception $e)`enter code here`
{
    die('Erreur : '.$e->getMessage());
}

但我们有一个:“错误:SQLSTATE[28000] [1045] 用户 'correctUSER'@'localhost' 的访问被拒绝(使用密码:YES)”??

我们尝试删除、重新创建数据库和用户,但问题始终存在,奇怪的是,如果我们尝试使用 root 用户 => 它可以工作,但使用 root 密码并不安全...

谁有解决办法??

谢谢!

【问题讨论】:

  • 取出模具('ok');看看会发生什么。
  • 那么,您创建了一个具有GRANT、刷新权限等的新用户?在这种情况下,检查 mysql 错误日志,检查 mysql_upgrade --force 做了什么,可能尝试 REPAIR TABLE mysql.user 等。

标签: php pdo


【解决方案1】:

mysql出错了,我必须做一个

修复表mysql.user

【讨论】:

    【解决方案2】:

    这个错误没有什么奇怪的。答案非常简单明了。

    密码和用户正确

    正如您从下面的错误消息中看到的那样,您的这种说法根本不正确。
    因此,要解决该问题,您必须提供正确的用户名和密码。

    还只是一个旁注:从你的代码中删除那些 try-catch-die 的东西。它完全没用,多余且不安全。

    【讨论】:

    • 不是没有那么简单!我们找到了解决方案,我们必须删除具有 % 访问权限的匿名用户(=> 当您的服务器崩溃时这是一个错误)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-05
    • 2017-11-07
    • 1970-01-01
    • 2017-03-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多