前提・実現したいこと
progare(プログラミング学習サイト)の学習コースにて、node.jsとMySQLを用いて、ローカル開発環境構築及び、Webアプリ開発の勉強をしています。
node.jsとMySQLを接続し、サーバー起動の際エラーコードが発生しました。
サーバーは起動している為、.ejsファイルの中身はWebに表示されています、
MySQLにて、作成したデータがターミナルに表示されていません。
発生している問題・エラーメッセージ
ターミナル(コマンドプロンプト) $ node app.js error connecting: Error: ER_ACCESS_DENIED_ERROR: Access denied for user 'root'@'localhost' (using password: YES) at Handshake.Sequence._packetToError (/Users/list-app/node_modules/mysql/lib/protocol/sequences/Sequence.js:47:14) at Handshake.ErrorPacket (/Users/list-app/node_modules/mysql/lib/protocol/sequences/Handshake.js:123:18) at Protocol._parsePacket (/Users/list-app/node_modules/mysql/lib/protocol/Protocol.js:291:23) at Parser._parsePacket (/Users/list-app/node_modules/mysql/lib/protocol/Parser.js:433:10) at Parser.write (/Users/list-app/node_modules/mysql/lib/protocol/Parser.js:43:10) at Protocol.write (/Users/list-app/node_modules/mysql/lib/protocol/Protocol.js:38:16) at Socket.<anonymous> (/Users/list-app/node_modules/mysql/lib/Connection.js:88:28) at Socket.<anonymous> (/Users/list-app/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 (/Users/list-app/node_modules/mysql/lib/protocol/Protocol.js:144:48) at Protocol.handshake (/Users/list-app/node_modules/mysql/lib/protocol/Protocol.js:51:23) at Connection.connect (/Users/list-app/node_modules/mysql/lib/Connection.js:116:18) at Object.<anonymous> (/Users/list-app/app.js:13:12) at Module._compile (internal/modules/cjs/loader.js:1138:30) at Object.Module._extensions..js (internal/modules/cjs/loader.js:1158:10) at Module.load (internal/modules/cjs/loader.js:986:32) at Function.Module._load (internal/modules/cjs/loader.js:879:14) at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:71:12) at internal/main/run_main_module.js:17:47
該当のソースコード
appjs
1 2const express = require('express'); 3const mysql = require('mysql'); 4 5const app = express(); 6 7const connection = mysql.createConnection({ 8 host: 'localhost', 9 user: 'root', 10 password: '[password]', 11 database: 'list_app' 12}); 13 14connection.connect((err) => { 15 if (err) { 16 console.log('error connecting: ' + err.stack); 17 return; 18 } 19 console.log('success'); 20 }); 21 22 app.get('/', (req, res) => { 23 connection.query( 24 'SELECT * FROM users', 25 (error, results) => { 26 console.log(results); 27 res.render('hello.ejs'); 28 } 29 ); 30 }); 31 32 app.listen(3000);
helloejs
1<h1>Hello World</h1>
sql
1 2mysql> show databases; 3+--------------------+ 4| Database | 5+--------------------+ 6| information_schema | 7| list_app | 8| mysql | 9| performance_schema | 10| sys | 11+--------------------+ 125 rows in set (0.00 sec) 13 14 15mysql> show tables; 16+--------------------+ 17| Tables_in_list_app | 18+--------------------+ 19| users | 20+--------------------+ 211 row in set (0.01 sec) 22 23mysql> describe users; 24+-------+------+------+-----+---------+----------------+ 25| Field | Type | Null | Key | Default | Extra | 26+-------+------+------+-----+---------+----------------+ 27| id | int | NO | PRI | NULL | auto_increment | 28| name | text | YES | | NULL | | 29+-------+------+------+-----+---------+----------------+ 302 rows in set (0.00 sec) 31
mysqlhghg
1mysql> create user 'hghg'@'localhost' identified by '1111'; 2Query OK, 0 rows affected (0.01 sec) 3 4mysql> select user,host from mysql.user; 5+------------------+-----------+ 6| user | host | 7+------------------+-----------+ 8| hghg | localhost | 9| mysql.infoschema | localhost | 10| mysql.session | localhost | 11| mysql.sys | localhost | 12| root | localhost | 13+------------------+-----------+ 145 rows in set (0.00 sec) 15 16mysql> grant all on list_app.*to'hghg'@localhost; 17Query OK, 0 rows affected (0.01 sec) 18 19mysql> quit; 20Bye 21fukazawaikkinoMacBook-Air:list-app fukazawaikki$ mysql --user=hghg --password 22Enter password: 23Welcome to the MySQL monitor. Commands end with ; or \g. 24Your MySQL connection id is 43 25Server version: 8.0.19 Homebrew 26 27Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved. 28 29Oracle is a registered trademark of Oracle Corporation and/or its 30affiliates. Other names may be trademarks of their respective 31owners. 32 33Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. 34 35mysql> exit; 36Bye 37fukazawaikkinoMacBook-Air:list-app fukazawaikki$ brew services start mysql@5.7 38Service `mysql@5.7` already started, use `brew services restart mysql@5.7` to restart. 39fukazawaikkinoMacBook-Air:list-app fukazawaikki$ node app.js 40error connecting: Error: ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by server; consider upgrading MySQL client 41 at Handshake.Sequence._packetToError (/Users/fukazawaikki/list-app/node_modules/mysql/lib/protocol/sequences/Sequence.js:47:14) 42 at Handshake.ErrorPacket (/Users/fukazawaikki/list-app/node_modules/mysql/lib/protocol/sequences/Handshake.js:123:18) 43 at Protocol._parsePacket (/Users/fukazawaikki/list-app/node_modules/mysql/lib/protocol/Protocol.js:291:23) 44 at Parser._parsePacket (/Users/fukazawaikki/list-app/node_modules/mysql/lib/protocol/Parser.js:433:10) 45 at Parser.write (/Users/fukazawaikki/list-app/node_modules/mysql/lib/protocol/Parser.js:43:10) 46 at Protocol.write (/Users/fukazawaikki/list-app/node_modules/mysql/lib/protocol/Protocol.js:38:16) 47 at Socket.<anonymous> (/Users/fukazawaikki/list-app/node_modules/mysql/lib/Connection.js:88:28) 48 at Socket.<anonymous> (/Users/fukazawaikki/list-app/node_modules/mysql/lib/Connection.js:526:10) 49 at Socket.emit (events.js:315:20) 50 at addChunk (_stream_readable.js:295:12) 51 -------------------- 52 at Protocol._enqueue (/Users/fukazawaikki/list-app/node_modules/mysql/lib/protocol/Protocol.js:144:48) 53 at Protocol.handshake (/Users/fukazawaikki/list-app/node_modules/mysql/lib/protocol/Protocol.js:51:23) 54 at Connection.connect (/Users/fukazawaikki/list-app/node_modules/mysql/lib/Connection.js:116:18) 55 at Object.<anonymous> (/Users/fukazawaikki/list-app/app.js:13:12) 56 at Module._compile (internal/modules/cjs/loader.js:1138:30) 57 at Object.Module._extensions..js (internal/modules/cjs/loader.js:1158:10) 58 at Module.load (internal/modules/cjs/loader.js:986:32) 59 at Function.Module._load (internal/modules/cjs/loader.js:879:14) 60 at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:71:12) 61 at internal/main/run_main_module.js:17:47 62 63 64 65
hghgjs
1const express = require('express'); 2const mysql = require('mysql'); 3 4const app = express(); 5 6const connection = mysql.createConnection({ 7 host: 'localhost', 8 user: 'hghg', 9 password: '[1111]', 10 database: 'list_app' 11}); 12 13connection.connect((err) => { 14 if (err) { 15 console.log('error connecting: ' + err.stack); 16 return; 17 } 18 console.log('success'); 19 }); 20 21 app.get('/', (req, res) => { 22 connection.query( 23 'SELECT * FROM users', 24 (error, results) => { 25 console.log(results); 26 res.render('hello.ejs'); 27 } 28 ); 29 }); 30 31 app.listen(3000);
試したこと
・rootのパスワード確認
shell> mysqladmin -u root -pxxxx ver
情報表示された為、パスワードは問題なしと判断
・mysql、node.js,homebrewのアンインストール及び、再インストール
補足情報(FW/ツールのバージョンなど)
ver
node 12.18.0
npm 6.14.4
Homebrew 2.3.0
mysql Ver 14.14 Distrib 5.7.29
![guest](/img/icon/icnUserSample.jpg)
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/06/06 03:12
2020/06/07 01:15
2020/06/07 20:56
2021/02/25 04:09