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

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

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

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

Node.js

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

Express

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

Q&A

受付中

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

bicLighter
bicLighter

総合スコア21

MySQL

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

Node.js

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

Express

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

1回答

0グッド

0クリップ

1773閲覧

投稿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);

以下のような質問にはグッドを送りましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

グッドが多くついた質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

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

回答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

総合スコア7117

良いと思った回答にはグッドを送りましょう。
グッドが多くついた回答ほどページの上位に表示されるので、他の人が素晴らしい回答を見つけやすくなります。

下記のような回答は推奨されていません。

  • 間違っている回答
  • 質問の回答になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

このような回答には修正を依頼しましょう。

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

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

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

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

ただいまの回答率
86.02%

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

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

質問する

関連した質問

同じタグがついた質問を見る

MySQL

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

Node.js

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

Express

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