序文 mysql モジュール (プロジェクト アドレスは https://github.com/mysqljs/mysql) は、Node.js アプリケーションで MySQL を操作できる JavaScript で記述されたオープン ソースの MySQL ドライバーです。しかし、使用中に「ER_NOT_SUPPORTED_AUTH_MODE」問題が発生しました。 この記事では、この問題の原因と解決策について説明します。 エラーメッセージ mysql モジュールを使用して MySQL 8 に接続しようとすると、次のエラー メッセージが表示されます。 D:\workspaceGithub\nodejs-book-samples\samples\mysql-demo\index.js:17 エラーをスローします。 ^ エラー: ER_NOT_SUPPORTED_AUTH_MODE: クライアントはサーバーが要求した認証プロトコルをサポートしていません。MySQL クライアントのアップグレードを検討してください。 Handshake.Sequence._packetToError (D:\workspaceGithub\nodejs-book-samples\samples\mysql-demo\node_modules\mysql\lib\protocol\sequences\Sequence.js:47:14) で Handshake.ErrorPacket (D:\workspaceGithub\nodejs-book-samples\samples\mysql-demo\node_modules\mysql\lib\protocol\sequences\Handshake.js:123:18) で Protocol._parsePacket (D:\workspaceGithub\nodejs-book-samples\samples\mysql-demo\node_modules\mysql\lib\protocol\Protocol.js:291:23) で Parser._parsePacket (D:\workspaceGithub\nodejs-book-samples\samples\mysql-demo\node_modules\mysql\lib\protocol\Parser.js:433:10) で Parser.write (D:\workspaceGithub\nodejs-book-samples\samples\mysql-demo\node_modules\mysql\lib\protocol\Parser.js:43:10) で Protocol.write (D:\workspaceGithub\nodejs-book-samples\samples\mysql-demo\node_modules\mysql\lib\protocol\Protocol.js:38:16) で Socket.<anonymous> (D:\workspaceGithub\nodejs-book-samples\samples\mysql-demo\node_modules\mysql\lib\Connection.js:91:28) で Socket.<anonymous> (D:\workspaceGithub\nodejs-book-samples\samples\mysql-demo\node_modules\mysql\lib\Connection.js:525:10) で Socket.emit (events.js:196:13) で addChunk で (_stream_readable.js:290:12) -------------------- Protocol._enqueue (D:\workspaceGithub\nodejs-book-samples\samples\mysql-demo\node_modules\mysql\lib\protocol\Protocol.js:144:48) で Protocol.handshake (D:\workspaceGithub\nodejs-book-samples\samples\mysql-demo\node_modules\mysql\lib\protocol\Protocol.js:51:23) で Connection.connect (D:\workspaceGithub\nodejs-book-samples\samples\mysql-demo\node_modules\mysql\lib\Connection.js:119:18) で オブジェクト.<匿名> (D:\workspaceGithub\nodejs-book-samples\samples\mysql-demo\index.js:12:12) Module._compile (internal/modules/cjs/loader.js:759:30) で Object.Module._extensions..js (internal/modules/cjs/loader.js:770:10) で Module.load (internal/modules/cjs/loader.js:628:32) で Function.Module._load (internal/modules/cjs/loader.js:555:12) で Function.Module.runMain (internal/modules/cjs/loader.js:826:10) で internal/main/run_main_module.js:17:11 で エラーの原因 このエラーが発生する理由は、現在、最新の MySQL モジュールが MySQL 8 の「caching_sha2_password」暗号化方式を完全にサポートしておらず、「caching_sha2_password」が MySQL 8 のデフォルトの暗号化方式であるためです。そのため、以下のコマンドではデフォルトで「caching_sha2_password」暗号化方式が使用され、アカウントとパスワードはmysqlモジュールで使用できなくなります。 mysql> ALTER USER 'root'@'localhost' が '123456' によって識別されます。 クエリは正常、影響を受けた行は 0 行 (0.12 秒) 回避策 解決策は、ユーザー root のパスワードを変更し、mysql モジュールがサポートできる暗号化方法を指定することです。 mysql> ALTER USER 'root'@'localhost' が mysql_native_password によって '123456' で識別されます。 クエリは正常、影響を受けた行は 0 行 (0.12 秒) 上記の文は、「mysql_native_password」を使用した暗号化方式が指定されていることを示しています。このメソッドは、mysql モジュールによってサポートされています。 アプリケーションを再度実行すると、次のコンソール出力が表示されます。 $ ノードindex.js 結果は次のとおりです: RowDataPacket { user_id: 1, username: '老卫' } このうち、「RowDataPacket { user_id: 1, username: '老卫' }」はデータベースクエリの結果です。 ソースコード このセクションの例は、https://github.com/waylau/nodejs-book-samples の「mysql-demo」アプリケーションにあります。 以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: WeChatアプレットはシンプルな手書き署名コンポーネントを実装します
>>: nginx ベースのブラウザネゴシエーションキャッシュプロセスの詳細な説明
Remax は、実行時に構文制限のないソリューションを採用した React を使用して小規模なプロ...
仮想環境で pip 経由でインストールしてみてください: pip で mysqlclient をイン...
最近Nginxを構築しているのですが、ドメイン名でアクセスできません。 nginx 構成ファイル n...
この記事では、Nodejs 開発プロセスで遭遇する配列の特性によって発生する問題と解決策、および配列...
この記事では、参考までに天気予報を実装するためのVueの具体的なコードを紹介します。具体的な内容は次...
概要: この記事では主に、Windows 環境に MySQL をインストールする方法について説明しま...
この記事では、例を使用して、MySQL 条件クエリ and or の使用方法と優先順位を説明します。...
最も一般的な方法は、フィールドに主キーまたは一意のインデックスを設定することです。重複データを挿入す...
目次1. ストアドプロシージャに関連する概念2. ストアドプロシージャの使用1) ストアドプロシージ...
序文: MySQL マスター/スレーブ アーキテクチャは、最も一般的に使用されるアーキテクチャ セッ...
参考までに、Javascriptを使用してメッセージボードの例(メッセージ削除あり)を実装します。具...
1. 一般的なMySQLの設定以下のすべての構成パラメータは、32G のメモリを搭載したサーバーに基...
この記事の例では、クリックして切り替える機能を実装するためのJavaScriptの具体的なコードを参...
1. 環境と関連ソフトウェア仮想マシン: VMwore Workstation Linuxシステム:...
私たちの生活、仕事、勉強において、ソーシャル ネットワークは徐々に将来のインターネット発展のトレンド...