【问题标题】:MySQL 5.7.24 -- The server requested authentication method unknown to the client [caching_sha2_password]MySQL 5.7.24 -- 服务器请求客户端未知的身份验证方法 [caching_sha2_password]
【发布时间】:2020-12-03 13:16:18
【问题描述】:

我正在使用这个软件:

MAMP     4.2
MySQL    5.7.24  <-- PLEASE NOTE
PHP      7.4.1
Windows  10

这个 PHP 代码 ...

$dsn = 'mysql:host=localhost;dbname=mydatabase;';
try {
  $dbh = new PDO($dsn, 'root', 'root');
} 
catch (PDOException $e) {
  echo $e;
}

... 生成此错误:

PDOException: PDO::__construct(): The server requested authentication method unknown to the client [caching_sha2_password]

重复:我没有使用 MySQL 8,我重复这个事实,因为我发现的关于这个主题的每一篇文章都声称这个错误与 MySQL 8 版有关。

这条 SQL 语句:

select user, plugin from mysql.user

给出这些结果:

root            mysql_native_password   
mysql.session   mysql_native_password   
mysql.sys       mysql_native_password

我已将此添加到 my.ini:

default-authentication-plugin = mysql_native_password

重启 MySQL 服务器后,我仍然收到错误消息。我尝试使用 MAMP 的工具升级到 MySQL 8.0,但这并没有发生。 这是 PHP PDO 问题吗?

顺便说一句,由于 Windows 10 上的 MAMP 附带 MySQL 5.7——我不知道为什么——而且我经常使用 MAMP,因为它很容易安装并且几乎不需要配置,'升级到 MySQL 8.0' 并不是我真正想要的答案,因为我认为存在涉及调整配置的解决方案。如果这是任何人的唯一答案,我想我会放弃 MAMP 并选择其他东西。

欢迎您的建议。

谢谢,大卫

【问题讨论】:

    标签: mysql passwords native


    【解决方案1】:

    如果你认为“这是一个 PHP PDO 问题吗?”,这是我的评论,

    我是新手,正在开发我的第一个 html 表单以绑定 mysql DB 表。我在这里遇到(唯一正确的)PDO 教程是 URL:https://phpdelusions.net/pdo。

    【讨论】:

    • Naushad,当我在此上下文中提到 PDO 时,我指的是 PHP 和 MySQL 在 SHA-2 密码学方面协同工作的方式。上面显示的完整错误消息是: PDOException: PDO::__construct(): The server requested authentication method unknown to the client [caching_sha2_password] 谢谢,David
    【解决方案2】:

    解决方案:Windows 不再是 MAMP 的目标环境,所以这基本上是我尝试在 Windows 上使用它的错。 MAMP 适用于 Mac OS X。所以我要切换到 XAMPP。 --大卫

    【讨论】:

      猜你喜欢
      • 2019-04-24
      • 1970-01-01
      • 2018-11-06
      • 2018-10-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-02
      相关资源
      最近更新 更多