我使用的是php 7.2.2和mysql 8.0。
当我尝试连接正确的凭据时,我收到此错误:
PDOException::("PDO::__construct(): The server requested authentication method unknown to the client [caching_sha2_password]")
需要帮助来解决问题。
答案 0 :(得分:17)
发现这个地方,不记得在哪里(或者我会赞美),但它适用于我,直到MySQL 8变得更好。 PHP已准备好使用MySQL的caching_sha2_password。
在MySQL shell中(命令提示符,无论如何):
CREATE USER username@localhost identified with mysql_native_password by 'password';
其中用户名是用户名,密码是该用户的密码。
然后您可以在shell中添加权限 - 或者在Workbench中添加权限,因为用户现在使用身份验证类型:标准。
答案 1 :(得分:8)
<div class="wrapper">
<h1 class="blur">
Our principles inform everything we do. Whether you're preparing content, designing an interface or developing an entire service, start by reading these.
</h1>
<h1 class="h1">
Our principles inform everything we do. Whether you're preparing content, designing an interface or developing an entire service, start by reading these.
</h1>
</div>
<svg id="googlesMain" height="0" width="0">
<defs>
<filter id="f1" x="0" y="0">
<feGaussianBlur in="SourceGraphic" stdDeviation="15" />
</filter>
</defs>
<clipPath id="svgPath">
<circle id="clipPath" cx="250" cy="250" r="250"/>
</clipPath>
</svg>
alter user 'username'@'localhost' identified with mysql_native_password by 'password';
在这里建议:https://github.com/laradock/laradock/issues/1390
答案 2 :(得分:4)
MySql installation picture:如果你想使用mysql&gt; = 8并且你不关心caching_sha2_password, 只需在安装时选择第二个选项。
答案 3 :(得分:0)
要使用mySQL 8(具有新的身份验证方法),您可以升级PHP。
MySQL 8
当运行7.1.16之前的PHP版本或7.2.4之前的PHP 7.2时,请将MySQL 8 Server的默认密码插件设置为mysql_native_password,否则将看到类似于以下错误:客户端未知的服务器请求的身份验证方法[caching_sha2_password]即使不使用caching_sha2_password。