当我尝试从 PHP 7.3 升级到 PHP 7.4 时,我收到了这个错误:
执行caching_sha2 auth 109时出现意外的服务器响应
如我所见,这表明 PHP 7.4 MySQLi 正在尝试使用该caching_sha2_password
插件。这篇文章指出 PHP MySQLi 不支持该插件(它也暗示了将来会支持它),但是由于 PHP 7.4 是新的并且似乎正在尝试使用它,我想它应该可以工作。此外,错误消息与不受支持的情况不同(拒绝访问与身份验证方法未知)。
所以我将我的 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
?是的
为什么我的密码被拒绝,我该如何解决? 请参阅我的后续问题
另外,如果 MySQLi 仍然不支持该插件:我该如何使用mysql_native_password
它?