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

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

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

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

Express

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

解決済

express.js からmysqlに接続できません。

lily12
lily12

総合スコア18

MySQL

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

Express

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

3回答

0グッド

0クリップ

898閲覧

投稿2022/02/10 12:57

実現したいこと

mysqlとexpress(node.js)との接続をしたい。

環境

"express": "^4.17.2", "mysql": "^2.18.1", "nodemon": "^2.0.15"

使用ファイル

package.json

1{ 2 "name": "express_mysql", 3 "version": "1.0.0", 4 "description": "", 5 "main": "index.js", 6 "scripts": { 7 "test": "echo \"Error: no test specified\" && exit 1" 8 }, 9 "keywords": [], 10 "author": "", 11 "license": "ISC", 12 "dependencies": { 13 "express": "^4.17.2", 14 "mysql": "^2.18.1", 15 "nodemon": "^2.0.15" 16 } 17} 18

app.js

1const express = require('express') 2const app = express() 3const port = 3000 4 5const mysql = require('mysql'); 6 7 8const con = mysql.createConnection({ 9 host: 'localhost', 10 user: 'root', 11 password: 'test' 12}); 13 14con.connect(function(err) { 15 if (err) throw err; 16 console.log('Connected'); 17}); 18 19app.get('/', (req, res) => res.send('Hello World!')) 20 21app.listen(port, () => console.log(`Example app listening on port ${port}!`))

エラー内容

throw err; // Rethrow non-MySQL errors

code: 'ER_ACCESS_DENIED_ERROR',
errno: 1045,
sqlMessage: "Access denied for user 'root'@'localhost' (using password: YES)",
sqlState: '28000',
fatal: true

試したこと

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'MyNewPass';

初心者のため、質問内容が至らない点があると思いますが
どなたかお時間のある方がいっらしゃいましたら
教えて頂きたいです。

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

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

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

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

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

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

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

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

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

lily12

2022/02/11 06:59

mysql2を導入したところ無事できました有難うございます!

回答3

1

ベストアンサー

package.jsonでは「index.js」と指定していますが、ファイル名は「app.js」です。
どちらかに、そろえましょう。

mysqlのバージョンによって、モジュールが変わります。
mysql8.0なら、require('mysql2')をインストールして使います。
mysql5.7以前なら、require('mysql')を使います。

mysqlは動いていますか?
ps ax | grep mysql
などで確認しましょう。

コンソールでmysqlにログインできるパスワードを確認しましょう。
mysql -u root -p
でログインできるパスワードをjsファイルに記述してください。

投稿2022/02/11 01:06

編集2022/02/11 01:10
technocore

総合スコア7115

lily12👍を押しています

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

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

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

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

回答へのコメント

lily12

2022/02/11 06:58

mysql2をインストールしたところ無事解決できました有難うございます!

1

rootのパスワードがソースコードと「試したこと」で設定している内容に違いがありますね。
あと、root@localhostに対してデータベースへ対してのアクセス権限を設定していないようにも見えます(書いてないだけかもしれませんが)。
その辺をしっかりご確認ください。

Eskeeさんも書かれていますが、

Access denied for user 'root'@'localhost' (using password: YES)

とエラー内容が明確に出ていますので、このワードで検索するなりすれば答えは見つかると思いますよ。頑張ってください。

投稿2022/02/10 15:18

AbeTakashi

総合スコア3957

lily12👍を押しています

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

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

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

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

回答へのコメント

lily12

2022/02/11 06:56

おっしゃる通り、まずは検索能力をしっかりと身につけれれるよう進めてまいります。 お忙しい中丁寧なご回答頂き有難うございました!

1

まずは、エラーコードの番号でググってみましょうか。

投稿2022/02/10 13:02

Eskee

総合スコア268

lily12👍を押しています

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

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

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

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

回答へのコメント

lily12

2022/02/11 07:00

検索能力を磨き、今後は自分で解決できるようにして参ります。 有難うございます!

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

ただいまの回答率
86.12%

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

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

質問する

関連した質問

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

MySQL

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

Express

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