问题描述
我正在使用此软件:
MAMP 4.2
MysqL 5.7.24 <-- PLEASE NOTE
PHP 7.4.1
Windows 10
$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并选择其他产品。
我欢迎您的建议。
谢谢大卫
解决方法
如果您认为“这是PHP PDO问题吗?”,这是我对此的评论,
我对此并不陌生,正在处理我的第一个html表单以与mysql DB表绑定。我在这里碰到了(唯一正确的)PDO教程:URL:https://phpdelusions.net/pdo。
,解决方案:Windows不再是MAMP的目标环境,因此,这基本上是我在Windows上尝试使用它的错误。 MAMP适用于Mac OSX。因此,我将切换到XAMPP。 -大卫