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

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

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

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

Q&A

解決済

1回答

1559閲覧

mysql8.0にWindowsPowershellからログイン出来ない。

Takaomi

総合スコア4

MySQL

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

0グッド

0クリップ

投稿2021/06/01 06:17

【環境】
windows10にてmysql8.0をインストールしPowershellからはログインしてSQLを操作出来る状態です。

そこで、node.jsを使用して下記ソースを実行すると

const mysql = require('mysql'); const connection = mysql.createConnection({ host: 'OMI-PC-2021-DELL', user: 'root', password: 'hagi3225', database: 'takaomi', });

以下のエラーが出てしまいます。

Uncaught Error: ER_HOST_NOT_PRIVILEGED: Host '10.118.119.19' is not allowed to connect to this MySQL server

ググってみると、指定のホストに対してログイン権限が無い様な事が書いてありますが、この解決方法お分かりになりますでしょうか?

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

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

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

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

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

hentaiman

2021/06/01 06:44

powershellから操作する時はどのように?そして本当にログインできていた?
Takaomi

2021/06/01 07:18

>mysql -u user -p パスワード入力して ログイン成功します。 テーブルを編集できているので確実にログイン出来ております。
yukky1201

2021/06/01 07:56 編集

powershell(mysqlコマンド)でログインするときにデータベースを指定されていませんので、その確認は妥当ではありません。接続データベースを指定してもログイン可能でしょうか
Takaomi

2021/06/01 08:09

ログイン後 use "データベース名" で指定するので問題ないと思われます。 実際にupdateでテーブルの内容を変更できているので、ログイン出来てるという事ではないですか?
yukky1201

2021/06/01 08:32

ログイン後に、use データベースで切り替えるのはlocal(接続先内でのローカルの意味)での処理です 同じような動作の例としてSSH接続の場合をあげます。 最終的に一般ユーザでオペレーションするという目的は果たしますが下記は別モノです。 (1) rootユーザでサーバにSSHログイン。その後、suコマンドで一般ユーザにスイッチ (2) 一般ユーザでサーバにSSHログイン Takaomiさんがそれぞれ下記に相当すると思います Poweshellで確認したのは (1) node.jsで確認したのは (2) そのため、解決までの過程のなかで指摘させていただきました。
Takaomi

2021/06/01 09:57

なるほど そうなのですね。 yukky1201さん勉強になりました。 私の理解が乏しいため、お手数をお掛け致した上、丁寧にご回答いただきありがとうございます。 それではPowershellで(2)のログインをするにはどう言ったコマンドを打てばよろしいですか?
Takaomi

2021/06/01 09:59

ちなみに -Dでデータベース名を指定してログインしても 今までと同様に (node.js経由で出来ないユーザで)ログイン出来ています。
hentaiman

2021/06/01 10:06

nodejsと同じ内容をオプション指定するだけですよ > mysql -u user -p これでいうとuとpがオプションですね そしてhostとdatabaseが未指定です 回答も既にされているので特に説明する事はありませんが
Takaomi

2021/06/02 12:33 編集

nodejsと同じオプションでpowershellでは問題なくログインできますね。 私の理解が間違ってたらすみません。。。 原因はもう一つの回答に書いた通りで、それで解決しましたので、これにて解決とさせてください。 根気よく答えて頂きありがとうございました。
Takaomi

2021/06/02 12:35

丁寧に解説して頂いたのでベストアンサーにしようと思いましたが、一度別の返答にベストアンサーつけると変えられないのですね。。。 申し訳ありません。
hentaiman

2021/06/02 12:43

正確に言うと問題点は二つあったという事になります 1つ目は、質問に至った原因(問題点)でもあり、回答にもあるように権限が適切に設定されていなかったからです 2つ目は、あなた自身が自己解決したプラグインの問題ですが、こちらは質問文からは分からない事です 権限が適切になった事でDBにアクセス出来るようになった事で判明した新たな問題点だからです > 申し訳ありません。 失礼な態度を取られた訳じゃないし、あなた自身回答に対するコメントで原因の記載と解決方法を記載されているので、ナレッジとしては十分だと思います 申し訳ないと思う理由はありません ちなみにこの欄は問題点を正確に捕捉する為のコメント欄であって回答ではないのでどちらにしろベストアンサーとして選ぶことは出来ません
guest

回答1

0

ベストアンサー

MySQL のログイン時のアカウントチェックについてはマニュアルを一読ください。

結論から言えば、10.118.119.19(おそらく、OMI-PC-2021-DELL の IP)に対して root がログインすることが許されていないはずです。
PowerShell からのログインだと localhost に対しての root アクセスになっているかと思います。

投稿2021/06/01 06:44

編集2021/06/01 06:47
tacsheaven

総合スコア13703

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

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

Takaomi

2021/06/01 07:22

ありがとうございます。 ログイン権限を与えた userを作成する方法 をググって試してみます。 あるいはrootにも権限を与えられるのかもしれませんが GRANTコマンドで試して失敗してしまうので、上記方法を試してみようと思います。 ※SQL初心者ゆえにやり方が間違っている可能性がありますが…。
Takaomi

2021/06/01 08:15 編集

新たに全権限を付与したユーザを作成したのですが、以下のエラーが出ました。 ===================== error connecting: Error: ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by server; consider upgrading MySQL client ===================== そして、原因は以下でした。 ================== 原因はMySQL8.0から採用された認証プラグインが原因のようです。 MySQL5.7までは【mysql_native_password】だったのですが MySQL8.0からは【caching_sha2_password】が採用されています。 ================== 下記サイトのに書いてありました。 認証方法をmysql_native_passwordに変えたら実行できました。 ※ちなみにこのサイトでお勧めしているmysql2のインストールでは私の場合不可能でした。 https://www.chuken-engineer.com/entry/2020/09/04/074216 同じ原因で詰まっている人の参考になれば幸いです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問