前提
Mac M1シリコン環境で、Vscodeを用いて、学習を行っています。
Udemyの講座のハンズオンをしています。
mysql Ver 8.0.31 for macos13.0 on arm64 (Homebrew)
node v18.12.1
発生している問題・エラーメッセージ
vscodeのデバッグコンソール上に以下のメッセージが出ます。
vscode上で、デバッグ実行後に、ブラウザソフトでアクセスしようとするとエラーが発生する。
トップページにはアクセスできるので、接続は問題ないと考えています。
[2022-12-27T19:29:19.407] [INFO] application - Application listening at :3000
とブラウザでトップぺージにアクセス時に、vscode上で表示されていることからもわかります。
[2022-12-27T19:30:14.555] [ERROR] application - connect ECONNREFUSED 127.0.0.1:3306 Uncaught Error Error: Cannot enqueue Quit after fatal error. at _validateEnqueue (undefined:212:16) at Protocol._enqueue (undefined:138:13) at quit (undefined:91:23) at end (undefined:239:18) at <anonymous> (undefined:364:7) at end (undefined:350:12) at <anonymous> (undefined:34:23) at processTicksAndRejections (undefined:95:5)
試したこと
まず最初のエラーは以下のサイトを参考に、MySQL 8.0 に合わせた認証方式に変更しました。
https://reigle.info/entry/2022/07/24/100000
がエラーが出るので、以下を参考にしました。
https://geniusium.hatenablog.com/entry/2022/08/20/210202
udemyの講座は基本的にwindows環境での講座ですが、「Macではローカルホストが・・・」と言及しており、ソースコード内でも
localhost
は使用せずに127.0.0.1
になっています。
※追記 ソースコード(抜粋)
udemyの写経です。
(web開発系の言語が初めてのため)
client.js
1const { promisify } = require("util"); 2const path = require("path"); 3const { sql } = require("@garafu/mysql-fileloader")({ root: path.join(__dirname, "./sql") }); 4const config = require("../../config/mysql.config.js"); 5const mysql = require("mysql"); 6const con = mysql.createConnection({ 7 host: config.HOST, 8 port: config.PORT, 9 user: config.USERNAME, 10 password: config.PASSWORD, 11 database: config.DATABASE 12}); 13const MySQLClient = { 14 connect: promisify(con.connect).bind(con), 15 query: promisify(con.query).bind(con), 16 end: promisify(con.end).bind(con) 17}; 18 19module.exports = { 20 MySQLClient, 21 sql 22};
mysql.config.js
1module.exports = { 2 HOST:process.env.MYSQL_HOST || "127.0.0.1", 3 PORT:process.env.MYSQL_PORT || "3306", 4 USENAME:process.env.MYSQL_USENAME || "root", 5 PASSWORD:process.env.MYSQL_PASSWORD ||"******", 6 DATABASE:process.env.MYSQL_DATABASE ||"tastylog" 7};
パスワードは一応伏せ字にしています。
回答1件
あなたの回答
tips
プレビュー