MySQL 8.0 での Node.js 認証の問題
Node.js を使用して root アカウントで MySQL データベースに接続しようとすると、特定の問題が生じる可能性があります。これは、デフォルトの認証プラグインが mysql_native_password から caching_sha2_password に変更された MySQL 8.0 に特に関係します。
エラー メッセージと原因
Node.js アプリケーションを使用して MySQL 8.0 に接続しようとすると、次のエラーが発生する可能性があります:
ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by server; consider upgrading MySQL client
Thisこのエラーは、Node.js MySQL ドライバーが MySQL 8.0 で導入された新しい認証プラグインを使用できないことを示しています。
回避策:
問題を解決し、root アカウントを使用して MySQL 8.0 に接続するには、次のようにします。 mysql_native_password プラグインは、デフォルトの caching_sha2_password の代わりに使用できます。これは、次のいずれかの方法で実行できます:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'MyNewPass';
CREATE USER 'foo'@'localhost' IDENTIFIED WITH mysql_native_password BY 'bar';
代替解決策:
代わりに、X プロトコルに基づく公式の MySQL Node.js コネクタを利用することもできます。このコネクタは、MySQL 8.0 の新しい認証モードをサポートします。
以上がNode.js アプリが MySQL 8.0 での認証に失敗するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。