8

PHP 7.3 から PHP 7.4 にアップグレードしようとすると、次のエラーが発生しました。

caching_sha2 auth 109 の実行中の予期しないサーバー応答

私が見たところ、これは PHP 7.4 MySQLi がcaching_sha2_passwordプラグインを使用しようとしていることを示しています。この記事では、PHP MySQLi がこのプラグインをサポートしていないことを指摘しています (これは、将来のサポートも示唆しています)。また、エラー メッセージは、サポートされていない場合とは異なります (アクセスが拒否された場合と認証方法が不明な場合)。

そこで、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再び動作します。

両方のプラグイン、同じ Web サイトに同じパスワードを使用し、同じ php.ini の変更を適用しました。ただし、構成は変更しませんでしたmysqli。MySQL のログには何も表示されず、apache2 ログには「アクセスが拒否されました」というエラー メッセージのみが表示されます。

php7.4-mysqli は をサポートしていcaching_sha2_passwordますか? はい

パスワードが拒否されるのはなぜですか? どうすれば修正できますか? 私のフォローアップの質問を参照してください

また、MySQLi がまだプラグインをサポートしていない場合: どうすれば使用できmysql_native_passwordますか?

4

2 に答える 2