前提・実現したいこと
Progateにてプログラミングを勉強中なのですが
Node.jsとMySQLを接続をしたいのですがうまくいきません
MySQLにてDBとテーブルを作成、コマンドにてテーブルの確認済み
接続ができるかテストの為、サイトアクセス時にDB内容を出力
発生している問題・エラーメッセージ
ローカルサーバーのテストページは表示されますが
データベースのテーブルデータがアクセス時の出力がされません
エラーメッセージ
C:\Users\User\test>node app.js
error connecting: Error: ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by server; consider upgrading MySQL client
at Handshake.Sequence._packetToError (C:\Users\User\test\node_modules\mysql\lib\protocol\sequences\Sequence.js:47:14)
at Handshake.ErrorPacket (C:\Users\User\test\node_modules\mysql\lib\protocol\sequences\Handshake.js:123:18)
at Protocol._parsePacket (C:\Users\User\test\node_modules\mysql\lib\protocol\Protocol.js:291:23)
at Parser._parsePacket (C:\Users\User\test\node_modules\mysql\lib\protocol\Parser.js:433:10)
at Parser.write (C:\Users\User\test\node_modules\mysql\lib\protocol\Parser.js:43:10)
at Protocol.write (C:\Users\User\test\node_modules\mysql\lib\protocol\Protocol.js:38:16)
at Socket.<anonymous> (C:\Users\User\test\node_modules\mysql\lib\Connection.js:88:28)
at Socket.<anonymous> (C:\Users\User\test\node_modules\mysql\lib\Connection.js:526:10)
at Socket.emit (events.js:315:20)
at addChunk (_stream_readable.js:295:12)
--------------------
at Protocol._enqueue (C:\Users\User\test\node_modules\mysql\lib\protocol\Protocol.js:144:48)
at Protocol.handshake (C:\Users\User\test\node_modules\mysql\lib\protocol\Protocol.js:51:23)
at Connection.connect (C:\Users\User\test\node_modules\mysql\lib\Connection.js:116:18)
at Object.<anonymous> (C:\Users\User\test\app.js:13:12)
at Module._compile (internal/modules/cjs/loader.js:1137:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1157:10)
at Module.load (internal/modules/cjs/loader.js:985:32)
at Function.Module._load (internal/modules/cjs/loader.js:878:14)
at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:71:12)
at internal/main/run_main_module.js:17:47
app.js内コード
const
1const mysql = require('mysql2'); 2 3const app = express(); 4 5const connection = mysql.createConnection({ 6 host: 'localhost', 7 user: 'root', 8 password: '****', 9 database: 'list_app' 10}); 11 12connection.connect((err) => { 13 if (err) { 14 console.log('error connecting: ' + err.stack); 15 return; 16 } 17 console.log('success'); 18}); 19 20app.get('/', (req, res) => { 21 connection.query( 22 'SELECT * FROM users', 23 (error, results) => { 24 console.log(results); 25 res.render('index.ejs'); 26 } 27 ); 28}); 29 30app.listen(3001); 31
使用データベースとテーブル
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| list_app |
| mysql |
| performance_schema |
| sakila |
| sys |
| world |
+--------------------+
mysql> show tables;
+--------------------+
| Tables_in_list_app |
+--------------------+
| items |
| users |
+--------------------+
補足情報(FW/ツールのバージョンなど)
各種バージョン
mysql --version
mysql Ver 8.0.21 for Win64 on x86_64 (MySQL Community Server - GPL)
node -v
v12.18.3
npm -v
6.14.8
パッケージは下記インストール済みは確認
express mysql ejs
MySQLのサービスは開始状態
回答2件
あなたの回答
tips
プレビュー