ホームページ >バックエンド開発 >PHPチュートリアル >PHP を使用した MySQL 8.0 で「サーバーはクライアントに不明な認証方法を要求しました」エラーを修正する方法

PHP を使用した MySQL 8.0 で「サーバーはクライアントに不明な認証方法を要求しました」エラーを修正する方法

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-14 05:45:15668ブラウズ

How to Fix

MySQL 8.0 エラー: PHP アプリケーションとの認証の不一致を解決する

MySQL 8.0 データベースに接続している PHP 開発者は、「サーバーが認証を要求しました」というエラーが発生する場合があります。クライアントには未知の方法です。」このエラーは通常、MySQL データベースと PHP アプリケーションで使用される認証方法の不一致によって発生します。

認証方法の競合:

MySQL 8.0 は caching_sha2_password をそのパスワードとして使用します。デフォルトの認証方法ですが、多くの PHP アプリケーションは従来のパスワードベースの認証を使用することを想定しています。アプリケーションが間違った認証方法でデータベースに接続しようとすると、サーバーは上記のエラーを返します。

解決策:

この問題を解決するには、 MySQL データベースで使用される認証方法を、PHP アプリケーションで期待される認証方法と一致するように変更する必要があります。これは、MySQL データベースの認証プラグインを、パスワードベースの認証をサポートする mysql_native_password に切り替えることで実現できます。

認証プラグインを変更する手順:

  1. ログインMySQL にルートとして接続するuser:
mysql -u root -p
  1. 次の SQL コマンドを実行して、root ユーザーの認証プラグインを変更します。
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'new_password';

「new_password」を次の文字列に置き換えます。選択した安全なパスワード。

  1. PHP アプリケーションが非 root を使用している場合ユーザーの場合は、そのユーザーに対してステップ 2 を繰り返し、「root」を適切なユーザー名に置き換えます。
  2. 変更を有効にするために MySQL サービスを再起動します。

追加リソース:

このトピックの詳細については、以下を参照してください。リソース:

  • [デジタル オーシャン: MySQL のインストール](https://www.digitalocean.com/community/tutorials/how-to-install-mysql-on-ubuntu-20-04)
  • [MySQL ドキュメント: デフォルト認証プラグイン](https://dev.mysql.com/doc/refman/8.0/en/server-options.html#sysvar_default_authentication_plugin)

以上がPHP を使用した MySQL 8.0 で「サーバーはクライアントに不明な認証方法を要求しました」エラーを修正する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。