ホームページ >データベース >mysql チュートリアル >MySQL 8.0 認証エラーを修正する方法: Node.JS のクライアント プロトコルの不一致?

MySQL 8.0 認証エラーを修正する方法: Node.JS のクライアント プロトコルの不一致?

DDD
DDDオリジナル
2024-12-31 06:32:21365ブラウズ

How to Fix MySQL 8.0 Authentication Error: Client Protocol Mismatch in Node.JS?

MySQL 8.0 認証エラー: クライアント プロトコルの不一致

多くのユーザーが、次を使用して MySQL 8.0 との接続を確立しようとするとエラーが発生します。 Node.JS:

Error: ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by server; consider upgrading MySQL client

解決策

この問題を解決するには、MySQL Workbench で次のコマンドを実行します。

  • ALTERユーザー 'root'@'localhost' が mysql_native_password BY で識別されました'password';
  • フラッシュ権限;

必ず「root」、「localhost」、「password」を特定のユーザー、ホスト、パスワードに置き換えてください。

上記の方法が失敗した場合は、次のコマンドを含めずに最初のコマンドを実行してみてください。 @'localhost'.

説明

MySQL 8.0 では、デフォルトの認証方式 caching_sha2_password が導入されましたが、これは古い MySQL クライアント バージョンではサポートされていません。ユーザーの認証方法を mysql_native_password に更新すると、クライアントはサーバーで正常に認証できるようになります。

補足事項

  • 接続できない場合root ユーザーを使用して MySQL Workbench にアクセスするには、次を使用して root パスワードをリセットする必要がある場合があります。手順:

    • MySQL サービスを停止します。
    • --skip-grant-tables オプションを使用して MySQL サービスを開始します。
    • MySQL に接続しますパスワードなしの root ユーザーとしてサーバーにアクセスします。
    • 次のコマンドを使用して root パスワードをリセットします: SET PASSWORD FOR 'root'@'localhost' = PASSWORD('new_password');
    • MySQL サービスを再起動します。
  • 他のサービスが発生した場合は、問題がある場合は、次のリソースを参照してください:

    • MySQLドキュメント: https://dev.mysql.com/doc/refman/5.5/en/old-client.html
    • GitHub の問題: https://github.com/mysqljs/mysql/issues/1507

以上がMySQL 8.0 認証エラーを修正する方法: Node.JS のクライアント プロトコルの不一致?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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