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

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

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

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

Node.js

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

Q&A

解決済

1回答

1710閲覧

MySQLをパスワード無しで使えるようにしたいです

Kotarom_24

総合スコア25

MySQL

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

Node.js

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

0グッド

0クリップ

投稿2021/12/30 16:14

編集2022/01/01 03:33

##解決したいこと
MySQLを使う際に、現状だとユーザー名とパスワードの入力を必須で求められます。毎回入力を求められるのが原因で、node.jsからDB操作ができていないようなので、パスワード入力を不要にしたいです。

##使用しているバージョン
mysql Ver 8.0.27 for Win64 on x86_64 (MySQL Community Server - GPL)
ターミナル windowsコマンドプロンプト
node 14.18.1
express ^4.17.2

##ソースコード

jsファイルはこのようになっています。expressとmysqlはnpm install済みです。

const express = require('express') const mysql = require('mysql') const connection = mysql.createConnection({ host: 'localhost', port: 3000, user: 'root', password: 'password', database: 'mydb' }) connection.connect() connection.query('select * from files', (e, result) => { console.log(result); }) 省略

##やったこと
①パスワードを空欄にしましたが、解決にはなりませんでした。

②以下の記事に書いてあることを試しましたが、バージョンが違うからか機能しませんでした。
リンク内容

mysql -u root -pを実行してパスワードを入力すればログインはできています。

しかし、mysqlのみで実行をすると、
ERROR 1045 (28000): Access denied for user 'ODBC'@'localhost' (using password: NO)
のエラーが表示されます。

jsファイル内でuse database xxx;を実行する必要があるのでしょうか。。。

どなたかパスワード入力不要にする方法を教えていただきたいです。

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

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

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

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

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

Supernove

2021/12/30 17:06 編集

node.jsのバージョンを書くのはいいですが、どうやってNode.jsからMySQLに接続しているのかわからないので、ソースコードを載せてほしいです。
hoshi-takanori

2021/12/30 18:34 編集

mysql コマンドで使う場合には毎回パスワードん入力する必要があるとして、node.js から使う場合は、スクリプトや設定ファイルなどに書いておけばいちいち入力する必要はないはずですが…。
Kotarom_24

2021/12/30 20:10

ソースコード掲載させていただきました! hoshi-takanoriさんのおっしゃっているスクリプトと設定ファイルについての参考リンクなどあれば共有していただきたいです! どうぞよろしくお願いいたします。
m.ts10806

2021/12/31 00:23

「node.js 設定ファイル」で調べた範囲では何もなかったですか?
Kotarom_24

2022/01/07 09:08

m.ts10806さん node.js 設定ファイルで調べて出てきたページを色々見て試してみたんですが、同じ状況のままでした。 node.jsの基礎知識が不足していると感じたため、一旦node.jsを一通り学習してみます。
guest

回答1

0

ベストアンサー

mysql Ver 8.0.27 for Win64 on x86_64 (MySQL Community Server - GPL)

MySQL8.0から認証の仕組みが変わりました。
npmのmysql2を使ってください。

const mysql = require('mysql2')

(これだけが原因ではないと思いますが。。。)

投稿2021/12/31 00:32

technocore

総合スコア7225

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

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

Kotarom_24

2021/12/31 06:09

回答ありがとうございます。 mysql2にしてみましたが、select * の結果がundefinedになってしまいました(´;ω;`)
technocore

2021/12/31 06:16

nodeスクリプトで接続する前にmysqlの動作確認はできているのですか? mysqlが動いているか id、passwordでログインできるか データベース、テーブルがあるか テーブル内にデーターはあるか、など
Kotarom_24

2022/01/01 03:31

mysqlは動いてます!全てコマンドでなら操作可能です!
technocore

2022/01/01 03:38

>host: 'localhost', >port: 3000, あなたのmysqlのポート番号は3000番なのですか?
Kotarom_24

2022/01/07 09:11

違いました。 3306に変更してみたらエラーの内容が変わりました。これでいけそうです。
Kotarom_24

2022/01/07 09:20

今回上手くいかなかった理由 ①mysql8.0がnpmのmysqlに対応していないことを知らなかった。 ②jsファイル内のmysqlのport番号を3000にしていた。 直接、問題解決につながった回答をベストアンサーに選びました。助けていただいたみなさん、ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問