MySQL 8.0 请求的客户端未知的身份验证方法 (caching_sha2_password)

Posted

技术标签:

【中文标题】MySQL 8.0 请求的客户端未知的身份验证方法 (caching_sha2_password)【英文标题】:MySQL 8.0 Requested authentication method unknown to the client (caching_sha2_password) 【发布时间】:2019-04-24 09:02:04 【问题描述】:

环境

微软视窗 10.0.16299.15 php 7.2.11 mysql 社区服务器 8.0.13 Symfony 4

我尝试连接到 MySQL 数据库。当我

php bin/console doctrine:database:create

,我有这个:

驱动程序发生异常:SQLSTATE[HY000][2054] 服务器请求客户端未知的身份验证方法

PDO::_construct():服务器请求客户端未知的身份验证方法[caching_sha2_password]

【问题讨论】:

PHP with MySQL 8.0+ error: The server requested authentication method unknown to the client的可能重复 【参考方案1】:

您可以查看Upgrading to MySQL 8.0 : Default Authentication Plugin Considerations 以获取有关升级到 8.0 的重要说明的信息,您可以在其中找到:

在撰写本文时,以下连接器不支持caching_sha2_password。

PHP mysqli connector GO mysql 连接器 PERL DBD-mysql 连接器

如果您想了解更多信息,可以查看 MySQL 官方文档中的caching_sha2_password as the Preferred Authentication Plugin。

所以,我认为即将升级到 MySQL 8.0,您可以考虑降级或等待一段时间让 php mysql 扩展也升级。

【讨论】:

我在“认证方式”和“使用旧的认证方式(保留mysql(X.兼容性))”中重新配置了 这种方法似乎对我不起作用(尽管它应该符合我的理解)。所以我不得不通过 Oracle 安装程序重新安装 MySQL 服务器并检查“使用旧身份验证方法”(我想像 @Phil31971)。【参考方案2】:

我认为您使用的是 MySQL 8,默认的身份验证方法已更改,也许您需要更改服务器配置中的某些内容。

看这个链接:https://github.com/laradock/laradock/issues/1392#issuecomment-368308494

您可以做的另一件事是降级您的 MySQL 版本。

【讨论】:

感谢您的快速回答,但我使用的是 symfony 4,我稍后会尝试降级 mysql!

以上是关于MySQL 8.0 请求的客户端未知的身份验证方法 (caching_sha2_password)的主要内容,如果未能解决你的问题,请参考以下文章

PHP与MySQL 8.0+错误:服务器请求客户端未知的身份验证方法[重复]

PHP,MySQL返回“连接失败:服务器请求客户端未知的身份验证方法” [重复]

MYSQL 8.0 - 客户端不支持服务器请求的身份验证协议

xampp phpmyadmin #2054 - 服务器请求客户端未知的身份验证方法

Laravel: SQLSTATE[HY000] [2054] 服务器请求客户端未知的身份验证方法

MySQL 8.0 配置mysql_native_password身份验证插件的密码