【发布时间】: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 并选择其他东西。
欢迎您的建议。
谢谢,大卫
【问题讨论】: