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

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

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

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

Express

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

Q&A

解決済

3回答

2638閲覧

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

lily12

総合スコア18

MySQL

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

Express

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

0グッド

0クリップ

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

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

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

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

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

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

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

lily12

2022/02/11 06:59

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

回答3

0

ベストアンサー

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

総合スコア7319

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

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

lily12

2022/02/11 06:58

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

0

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

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

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

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

投稿2022/02/10 15:18

AbeTakashi

総合スコア4820

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

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

lily12

2022/02/11 06:56

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

0

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

投稿2022/02/10 13:02

Eskee

総合スコア268

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

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

lily12

2022/02/11 07:00

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.38%

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

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

質問する

関連した質問