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

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

新規登録して質問してみよう
ただいま回答率
85.48%
Next.js

Next.jsは、Reactを用いたサーバサイドレンダリングなどを行う軽量なフレームワークです。Zeit社が開発しており、nextコマンドでプロジェクトを作成することにより、開発環境整備が整った環境が即時に作成できます。

MySQL

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

TypeScript

TypeScriptは、マイクロソフトによって開発された フリーでオープンソースのプログラミング言語です。 TypeScriptは、JavaScriptの構文の拡張であるので、既存の JavaScriptのコードにわずかな修正を加えれば動作します。

Q&A

解決済

3回答

3431閲覧

TypeScript(Next.js)にてローカルに立ち上げたMySQLに接続ができない

nashiokun

総合スコア2

Next.js

Next.jsは、Reactを用いたサーバサイドレンダリングなどを行う軽量なフレームワークです。Zeit社が開発しており、nextコマンドでプロジェクトを作成することにより、開発環境整備が整った環境が即時に作成できます。

MySQL

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

TypeScript

TypeScriptは、マイクロソフトによって開発された フリーでオープンソースのプログラミング言語です。 TypeScriptは、JavaScriptの構文の拡張であるので、既存の JavaScriptのコードにわずかな修正を加えれば動作します。

0グッド

0クリップ

投稿2022/07/27 07:55

Typescript初心者です。Next.jsを使い、TypeScriptにてAPI経由でDBへのアクセスがしたいです。

pages/api内に、以下のファイルを作成しました。

Typescript

1// Next.js API route support: https://nextjs.org/docs/api-routes/introduction 2import type { NextApiRequest, NextApiResponse } from 'next'; 3 4export default async function handler( 5 req: NextApiRequest, 6 res: NextApiResponse, 7) { 8 const mysql = require('mysql'); 9 console.log('mysql準備済み'); 10 const con = mysql.createConnection({ 11 host: 'localhost', 12 user: 'root', 13 database: 'sample', 14 }); 15 console.log('mysql接続済み'); 16 17 //クエリログ書き出し 18 19 const query = `SELECT * FROM text`; 20 con.connect(err => { 21 if (err) throw err; 22 23 console.log('接続完了'); 24 25 con.query(query, (err, result, fields) => { 26 if (err) throw err; 27 console.log(result); 28 }); 29 }); 30 res.status(200); 31 res.end(); 32} 33

ローカルにてmysqlサーバーを立てて、ブラウザにapiのurlを打ち込みDBに接続しようとしたところ、以下のエラーが表示されました。

node

1error - uncaughtException: Error: connect ECONNREFUSED ::1:3306 2 at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1246:16) { 3 errno: -61, 4 code: 'ECONNREFUSED', 5 syscall: 'connect', 6 address: '::1', 7 port: 3306, 8 fatal: true 9}

エラーメッセージを調べたところ、mysqlサーバが起動していないかとの文面があったのですが、以下のコマンドを打ったところaliveと表示されたので、起動はしていると思います。

zsh

1mysqladmin ping -u root

こちら接続する方法が知りたいです。よろしくおねがいします。

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

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

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

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

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

guest

回答3

0

多分この辺にも記載があるのですが
https://qiita.com/takepan/items/1b0aaff0ffd853237231
pierogi.user さんがおっしゃる通り、エラーの内容から推察される事項としては、指定しているアドレスが localhost ではなく、 127.0.0.1 じゃないとダメかもしれません
これは、ユーザーの設定によるもののところがありますので、あるいはmysqlのユーザー側の設定が必要な事項であるかもしれませんね
https://www.wakuwakubank.com/posts/322-mysql-access-host/

投稿2022/08/14 04:24

cocoalix

総合スコア62

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

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

0

ベストアンサー

エラーメッセージを見ると、Error: connect ECONNREFUSED ::1:3306となっていてアドレス指定が上手くいっていないように見えます。musql.createConnectionhost: 'localhost',host: '127.0.0.1',に書き換えて試してみてもいいかもしれません。

投稿2022/07/30 11:57

pierogi.user

総合スコア19

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

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

0

可能性が高そうなのはMySQLは設定しないとrootのパスワード無しログインはできませんが設定しましたか?
起動しているようでしたら一度コンソールからログインしてみると問題の切り分けがしやすいと思いますよ。

投稿2022/07/28 00:11

RiaFeed

総合スコア2701

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

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

nashiokun

2022/07/28 23:24

コメントありがとうございます。MySQLにはターミナルから以下のコマンドでログインできることが確認済みです。 mysql -u root パスワード無しで入ることができています。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問