MySQL 8.0 への接続における Node.js 認証の問題
MySQL 8.0 では、Node.js プログラムが MySQL 8.0 に接続する際に困難を引き起こす新しい認証メカニズムが導入されています。データベース。以前の MySQL バージョンで使用されていたレガシー認証方法は、デフォルトではサポートされなくなりました。
認証メカニズムの不一致
MySQL 5.7 では認証に mysql_native_password プラグインが採用されていましたが、MySQL 8.0 ではcaching_sha2_パスワード。現在、Node.js コミュニティ ドライバーには、新しいプラグインと互換性のあるメカニズムがありません。
Node.js の回避策
この問題を回避するには、次の 2 つの回避策が考えられます。
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'MyNewPass';
これにより、古い認証方法を使用するように root アカウントが変更されます。
CREATE USER 'foo'@'localhost' IDENTIFIED WITH mysql_native_password BY 'bar';
これにより、別のユーザーが作成されますレガシー プラグイン。
MySQL コネクタを使用した代替オプション
もう 1 つの解決策には、公式の MySQL Node.js コネクタの使用が含まれます。このコネクタは X プロトコルを利用し、すぐに使える新しい認証メカニズムをサポートします。
コミュニティ サポートとアップデート
これに対処することを目的とした今後のプル リクエストがあります。コミュニティ Node.js ドライバー内の問題。ただし、アップデートにはしばらく時間がかかることが予想されます。
以上がNode.js アプリケーションは MySQL 8.0 のキャッシュ SHA2 パスワードを使用してどのように認証できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。