ホームページ >データベース >mysql チュートリアル >MySQL 8.0 での Node.js 認証の問題を解決するにはどうすればよいですか?
Node.js が MySQL 8.0 に対して認証できない
Node.js アプリケーションでは、アップグレード後に MySQL データベースへの接続が困難になりますMySQL 8.0に。この問題は、新しい caching_sha2_password ハッシュ方式を使用する root アカウントに起因します。
認証メカニズムの違い
MySQL 8.0 では、新しいデフォルトの認証プラグイン caching_sha2_password が導入されましたが、MySQL 5.7 では、このプラグインが採用されました。 mysql_native_password。残念ながら、MySQL 用の現在の Node.js ドライバーは、互換性のあるクライアント側の認証メカニズムをサポートしていません。
接続を確立するための回避策
回避策の 1 つは、root ユーザー アカウントを次のように変更することです。古い mysql_native_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 ドライバー内でこの問題に対処するためのプル リクエストが現在進行中です。
結論
Node.js アプリケーション上記の回避策を使用するか、ネイティブ サポートを提供する公式 MySQL Node.js コネクタを使用することで、MySQL 8.0 に正常に接続できます。新しい認証メカニズム用。
以上がMySQL 8.0 での Node.js 認証の問題を解決するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。