Node.js サーバーを MySQL データベースに接続するときに、「ER_NOT_SUPPORTED_AUTH_MODE: Client doesn't do」というエラーが発生する場合があります。サーバーから要求された認証プロトコルはサポートされていません。」この問題は、クライアントとサーバーが異なる認証方法を使用している場合に発生します。
問題分析
エラー メッセージは、MySQL サーバーが新しい認証プロトコルを使用するように構成されていることを示唆しています。これは Node.js クライアントではサポートされていません。これは、Node.js クライアントのバージョンが古い場合に発生する可能性があります。
解決策
この問題を解決するには、使用されている新しい認証プロトコルをサポートするように Node.js クライアントをアップグレードします。 MySQLサーバーによって。 MySQL v8.0 の場合は、次の手順に従います。
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password'; FLUSH PRIVILEGES;
「root」と「password」を実際のユーザー名と希望のパスワードに置き換えることを忘れないでください。これらの変更は、接続しようとしているユーザーに適用する必要があります。
コード スニペット (更新)
MySQL 構成とユーザー権限を更新した後、Node. js 接続スニペットは、新しい認証をサポートする mysql2 ライブラリを使用するように更新する必要があります。プロトコル:
const mysql = require('mysql2'); const connection = mysql.createConnection({ host : 'localhost', user : 'root', password : 'password', database : 'foobarDb' });
これらの手順を実装すると、Node.js サーバーと MySQL データベース間の接続を正常に確立でき、「ER_NOT_SUPPORTED_AUTH_MODE」エラーが解消されます。
以上がNode.js を MySQL に接続する際の「ER_NOT_SUPPORTED_AUTH_MODE」エラーを修正する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。