問題タブ [php-7.4]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
3612 参照

php - mysqli は PHP 7.4 で caching_sha2_password をサポートしていますか?

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

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

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

そこで、MySQL 認証プラグインを次のように変更しましたcaching_sha2_password(以前と同じパスワードを使用):

しかし、これにより別のエラーが発生しました:

ユーザー '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ますか?