質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

Express

ExpressはNode.jsのWebアプリケーションフレームワークです。 マルチページを構築するための機能セットおよびハイブリッドのWebアプリケーションを提供します。

Q&A

1回答

4307閲覧

mySqlとNode.jsの接続ができない

bicLighter

総合スコア21

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

Express

ExpressはNode.jsのWebアプリケーションフレームワークです。 マルチページを構築するための機能セットおよびハイブリッドのWebアプリケーションを提供します。

0グッド

0クリップ

投稿2022/05/27 12:23

https://prog-8.com/docs/nodejs-mysql
現在progateさんのnode.jsとmysqlを接続しようの記事と同じように環境構築をしているのですが、いざnode app.jsで立ち上げようとすると

Error: connect ECONNREFUSED ::1:3306 at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1195:16) -------------------- at Protocol._enqueue (/Users/airdropshitecho/Desktop/unko/node_modules/mysql/lib/protocol/Protocol.js:144:48) at Protocol.handshake (/Users/airdropshitecho/Desktop/unko/node_modules/mysql/lib/protocol/Protocol.js:51:23) at Connection.connect (/Users/airdropshitecho/Desktop/unko/node_modules/mysql/lib/Connection.js:116:18) at Object.<anonymous> (/Users/airdropshitecho/Desktop/unko/app.js:13:12) at Module._compile (node:internal/modules/cjs/loader:1105:14) at Module._extensions..js (node:internal/modules/cjs/loader:1159:10) at Module.load (node:internal/modules/cjs/loader:981:32) at Module._load (node:internal/modules/cjs/loader:827:12) at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:77:12) at node:internal/main/run_main_module:17:47

のエラーが出ます。たくさん調べてみましたが解決できそうな記事が見つからなくて困っています。
どうかご存知の方がいたらご教授お願いしたいです。

app.js(progateのコードとほぼ同じ)

1const express = require('express'); 2const mysql = require('mysql') 3 4const app = express(); 5 6const connection = mysql.createConnection({ 7 host: 'localhost', 8 user: 'root', 9 password: '****', 10 database: '****' 11}); 12 13connection.connect((err) => { 14 if (err) { 15 console.log('error connecting: ' + err.stack); 16 return; 17 } 18 console.log('success'); 19}); 20 21app.get('/', (req, res) => { 22 connection.query( 23 'SELECT * FROM new_table', 24 (error, results) => { 25 console.log(results); 26 res.render('hello.ejs'); 27 } 28 ); 29 }); 30 31app.listen(3001);

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

miyabi-sun

2022/05/27 16:46

これ怪しいですね。 何故mysql2パッケージを使うべきかの解説します。 `mysql --version`コマンドでMySQLのバージョンを確認してみてください。 8系ではないですか? Node.jsのMySQLへ接続するクライアントツールは沢山ありましたが、 mysqlの開発者が他のライブラリ作ってたチームと手を組んで mysqlを捨ててmysql2のプロジェクトを立ち上げた経緯があります。 その辺でmysqlは長らくメンテされておらず、使えはするが最新MySQL8との互換性がなく接続出来ません。 より具体的な理由はログイン時のパスワードの扱いだったかな?(気になるなら調べてみてください) なのでNode.jsはmysql2を使うべきです、使い方もmysqlライブラリと全く同じです。 まぁ、Progateのページのリンクを追いかけると MySQL5.7インストールして使えと書いてあるので使えるかどうかは知りませんが https://prog-8.com/docs/mysql-env
guest

回答1

0

Error: connect ECONNREFUSED ::1:3306

接続拒否されています。
ターミナルでmysqlにログインできるか確認してください。
それから、localhostがIPv6(::1)になっているのが気になるので調べてください。

$ mysql -u root -p Enter password: ******** Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 8 Server version: 8.0.29 Homebrew Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql>

投稿2022/05/27 13:51

technocore

総合スコア7200

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問