【发布时间】:2020-04-01 12:13:57
【问题描述】:
当我尝试从 PHP 7.3 升级到 PHP 7.4 时,我收到了这个错误:
执行caching_sha2 auth 109 时出现意外的服务器响应
在我看来,这表明 PHP 7.4 MySQLi 正在尝试使用 caching_sha2_password 插件。 This article 指出 PHP MySQLi 不支持该插件(它还暗示将来会支持它),但由于 PHP 7.4 是新的并且似乎正在尝试使用它,我想它应该可以工作。此外,错误消息与不受支持的情况不同(拒绝访问 vs. 身份验证方法未知)。
所以我将我的 MySQL 身份验证插件更改为 caching_sha2_password(使用与以前相同的密码):
ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY '';
FLUSH PRIVILEGES;
但这又引发了另一个错误:
拒绝用户 'root'@'localhost' 访问(使用密码:YES)。
切换回 PHP 7.3 和 mysql_native_password 再次运行。
我对两个插件、同一个网站使用了相同的密码,并应用了相同的 php.ini 更改。
但是,我没有更改任何 mysqli 配置。 MySQL 的日志什么也不显示,apache2 的日志只显示“拒绝访问”错误消息。
php7.4-mysqli 是否支持caching_sha2_password? 是
为什么我的密码被拒绝,我该如何解决? See my follow-up question
另外,如果 MySQLi 仍然不支持该插件:我该如何使用mysql_native_password?
【问题讨论】:
标签: php mysql authentication mysqli php-7.4