【環境】
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
ググってみると、指定のホストに対してログイン権限が無い様な事が書いてありますが、この解決方法お分かりになりますでしょうか?
powershellから操作する時はどのように?そして本当にログインできていた?
>mysql -u user -p
パスワード入力して ログイン成功します。
テーブルを編集できているので確実にログイン出来ております。
powershell(mysqlコマンド)でログインするときにデータベースを指定されていませんので、その確認は妥当ではありません。接続データベースを指定してもログイン可能でしょうか
ログイン後
use "データベース名"
で指定するので問題ないと思われます。
実際にupdateでテーブルの内容を変更できているので、ログイン出来てるという事ではないですか?
ログイン後に、use データベースで切り替えるのはlocal(接続先内でのローカルの意味)での処理です
同じような動作の例としてSSH接続の場合をあげます。
最終的に一般ユーザでオペレーションするという目的は果たしますが下記は別モノです。
(1) rootユーザでサーバにSSHログイン。その後、suコマンドで一般ユーザにスイッチ
(2) 一般ユーザでサーバにSSHログイン
Takaomiさんがそれぞれ下記に相当すると思います
Poweshellで確認したのは (1)
node.jsで確認したのは (2)
そのため、解決までの過程のなかで指摘させていただきました。
なるほど そうなのですね。
yukky1201さん勉強になりました。
私の理解が乏しいため、お手数をお掛け致した上、丁寧にご回答いただきありがとうございます。
それではPowershellで(2)のログインをするにはどう言ったコマンドを打てばよろしいですか?
ちなみに -Dでデータベース名を指定してログインしても
今までと同様に (node.js経由で出来ないユーザで)ログイン出来ています。
nodejsと同じ内容をオプション指定するだけですよ
> mysql -u user -p
これでいうとuとpがオプションですね そしてhostとdatabaseが未指定です 回答も既にされているので特に説明する事はありませんが
nodejsと同じオプションでpowershellでは問題なくログインできますね。
私の理解が間違ってたらすみません。。。
原因はもう一つの回答に書いた通りで、それで解決しましたので、これにて解決とさせてください。
根気よく答えて頂きありがとうございました。
丁寧に解説して頂いたのでベストアンサーにしようと思いましたが、一度別の返答にベストアンサーつけると変えられないのですね。。。
申し訳ありません。
正確に言うと問題点は二つあったという事になります
1つ目は、質問に至った原因(問題点)でもあり、回答にもあるように権限が適切に設定されていなかったからです
2つ目は、あなた自身が自己解決したプラグインの問題ですが、こちらは質問文からは分からない事です 権限が適切になった事でDBにアクセス出来るようになった事で判明した新たな問題点だからです
> 申し訳ありません。
失礼な態度を取られた訳じゃないし、あなた自身回答に対するコメントで原因の記載と解決方法を記載されているので、ナレッジとしては十分だと思います
申し訳ないと思う理由はありません
ちなみにこの欄は問題点を正確に捕捉する為のコメント欄であって回答ではないのでどちらにしろベストアンサーとして選ぶことは出来ません
回答1件
あなたの回答
tips
プレビュー